Виведіть роздільну здатність екрана пристрою у визначеному форматі [width]x[height](без дужок). Наприклад, вихід може бути 1440x900.
Ось онлайн-тестер, за допомогою якого можна перевірити власну роздільну здатність екрана.
'0x0'
Виведіть роздільну здатність екрана пристрою у визначеному форматі [width]x[height](без дужок). Наприклад, вихід може бути 1440x900.
Ось онлайн-тестер, за допомогою якого можна перевірити власну роздільну здатність екрана.
'0x0'
Відповіді:
(_=screen)=>_.width+"x"+_.height
Виходи як функція return. Додайте f=на початку та посилайтеся на зразок f(). Використовує ініціалізацію параметра для ініціалізації параметра _до screenоб'єкта. Решта - сама роз'яснення.
f=(_=screen)=>_.width+"x"+_.height
console.log(f())
Примітка: Передача аргументу цій функції призведе до її відмови.
with(screen)alert(width+"x"+height)
Ніколи не думав, що буду використовувати один день with! Я не думаю, що це може бути далі для гольфу.
s=screen,s.width+"x"+s.height(29 символів) також працює.
alert: with(screen)(width+'x'+height)просто повертає відповідний рядок.
_=screen,_.width+"x"+_.height29 байт
* зітхання * TI-BASIC займає додатковий байт для кожної малої літери.
+2 завдяки @Timtech
-3 завдяки @Timtech
:If ΔX>.1
:Then
:Disp "96x64
:Else
:Disp "320x240
Це працює лише тому, що TI-BASIC можна запускати лише на калькуляторах з двома різними роздільними здатностями екрана: 96 на 64 та 320 на 240. Я просто перевіряю, щоб побачити, який екран у мене є, встановивши масштаб на щось, що залежить від роздільної здатності екрана виведення правильної роздільної здатності.
Я зараз відзначаю це як неконкурентоспроможне, оскільки це важко закодовано.
ZDecimalа потім використовуючи інше Xmaxпорівняння, принаймні один байт. Крім того, я думаю, що вам потрібно використовувати малі регістри, xякі є двома байтами (x2) замість однобайтового верхнього регістру.
ZDecimal), оскільки зум за замовчуванням ( ZStandard) однаковий для обох калькуляторів. Я все-таки виправлю капіталізацію.
ZStandardоднак, чи ΔXне відрізнятиметься вона між калькуляторами? Також ZDecimalє лише один байт, тому це 31 байт.
_=>(s=screen).width+'x'+s.height
console.log((_=>(s=screen).width+'x'+s.height)())
_=>(s=screen).width+'x'+s.heightрятує байт
/*/*/sy*r SPDisplaysDataType|awk '/so/{print$2$3$4}'
Запускається system_profiler, отримує SPDisplaysDataTypeінформацію, шукає перший soв Resolutionі друкує роздільну здатність екрана. На кількох екранах це друкує всі роздільні здатності.
Попередній, невідповідний варіант:
/*/*/sy*r SPDisplaysDataType|grep so|tr -d 'R :a-w'
2880x1800\n1920x1080@60Hz(два рядки). Я не знаю, чи це дискваліфікує це ... чи?
@60Hzявно не є специфікацією.
|sed 1q, доводячи кількість байтів до 58 байт.
awkодин додатковий байт і маючи його. :)
s=screen;alert(s.width+"x"+s.height)
SysGet,w,0
SysGet,h,1
Send,%w%x%h%
Збережіть це у файлі з розширенням .AHK та запустіть його з командного рядка
Sendа не MsgBox?
Дякуємо @Johan du Toit за збереження байта!
#import<windows.h>
#define G GetSystemMetrics
f(){printf("%dx%d",G(0),G(1));}
#define G GetSystemMetrics f(){printf("%dx%d",G(0),G(1));}
-7 дякую Мартіну Ендеру
-5 (насправді 12!) Від Leaky Nun , майстер Regex - поза мною.
Це довго, але не довше, ніж жахливе System.Windows.Forms.SystemInformation.PrimaryMonitorSizeрішення
(gwmi win32_videocontroller|% v*n)-replace" |x \d+\D+$"
спочатку ми Get-WmiObject( gwmi) для отримання Win32_VideoControllerоб’єкта, який містить член з ім'ям VideoModeDescription, який є рядком у форматі 1920 x 1080 x 4294967296 colors, потім я запускаю заміни регулярного виразу, щоб отримати правильний формат.
PS H:\> (gwmi win32_videocontroller|% v*n)-replace" |x \d+\D+$"
1920x1080
(gwmi win32_videocontroller|% v*n)-replace" |x[^x]+$"голить пару байтів, підправляючи регулярний вираз.
SystemInformation[][[1,5,2,1,2,1,2,2,;;,2]]~Infix~x
Це може не працювати для вас залежно від того, які пристрої ви підключили (я не знаю). Це завжди має спрацювати (припустимо, що у вас підключений принаймні один екран):
Infix[Last/@("FullScreenArea"/.SystemInformation["Devices","ScreenInformation"][[1]]),x]
SystemInformation[] повертає вираз форми
SystemInformationData[{
"Kernel" -> {__},
"FrontEnd" -> {__},
"Links" -> {__},
"Parallel" -> {__},
"Devices" -> {__},
"Network" -> {__},
}]
Нас цікавить "Devices", до яких можна отримати доступ безпосередньо SystemInformation["Devices"]або як SystemInformation[][[1,5,2]]. Результатом буде список форми
{
"ScreenInformation" -> {__},
"GraphicsDevices" -> {__},
"ControllerDevices" -> {__}
}
Ми хочемо "ScreenInformation", до яких можна отримати доступ як SystemInformation["Devices","ScreenInformation"]більш, так і більш лаконічно SystemInformation[][[1,5,2,1,2]]. Результат буде форму
{
{
"ScreenArea" -> {__},
"FullScreenArea" -> {{0,w_},{0,h_}},
"BitDepth" -> _,
"Resolution" -> _
},
___
}
Довжина списку буде кількістю підключених екранів. Перший екран є, SystemInformation[][[1,5,2,1,2,1]]і ширину та висоту можна отримати, оскільки SystemInformation[][[1,5,2,1,2,1,2,2,;;,2]]тоді ми просто вставляємо формат Infix xдля виводу.
String f(){java.awt.Dimension s=java.awt.Toolkit.getDefaultToolkit().getScreenSize();return s.width+"x"+s.height;}
Цей метод не працюватиме в безголовій установці Java (як у TIO), оскільки він використовує бібліотеки awt. Під капотом для виклику getScreenSizeвикористовується внутрішній інтерфейс Java для виклику (як правило, у бібліотеку С) для ширини та висоти екрана.
-9 байт завдяки Олів'є Грегоару за те, що він нагадав мені, що я можу повернути рядок замість того, щоб роздрукувати її.
...x..., тому void f(){System.out.print((java.awt.Toolkit.getDefaultToolkit().getScreenSize()+"").replaceAll("[^\\d,]",""));}що випуск 1920,1200коротший ..
xзамість того ,, щоб використовувати заміни регулярних виразів, але це на п’ять байтів більше, ніж ваша поточна відповідь: void f(){System.out.print((java.awt.Toolkit.getDefaultToolkit().getScreenSize()+"").replaceAll("[^\\d,]","").replace(",","x"));}або void f(){System.out.print((java.awt.Toolkit.getDefaultToolkit().getScreenSize()+"").replaceAll(".*?(\\d+).*?(\\d+).*","$1x$2"));}А ну, що на Java не важке ..; p
_=>{var s=System.Windows.Forms.Screen.PrimaryScreen.Bounds;return s.Width+"x"+s.Height;};
-6 байт завдяки @TheLethalCoder , нагадуючи мені, що ОП не згадував про друк, тому повернення рядка також чудово. І додаткові -6 байт, змінивши його на лямбда.
Func<string>: ()=>{var s=System.Windows.Forms.Screen.PrimaryScreen.Bounds;return s.Width+"x"+s.Height;};. Однак у вас є повернення, voidале ви повертаєте, stringтому для цього потрібно додати 2 байти.
_=>{var s=System.Windows.Forms.Screen.PrimaryScreen.Bounds;return s.Width+"x"+s.Height;};
var s=System.Windows.Forms.Screen.AllScreens[0].Bounds;було б те ж число, але ви можете взяти участь у гольфі з цією ідеєю.
read -aa<<<`xrandr`
echo ${a[7]}x${a[9]::-1}
xrandrналежить X-серверу, на Ubuntu надається пакет x11-xserver-utils .
Проба зразка:
bash-4.3$ read -aa<<<`xrandr`;echo ${a[7]}x${a[9]::-1}
1920x1080
xrandr|grep -oP '\d+x\d+'|line
Завдяки:
Проба зразка:
bash-4.3$ xrandr|grep -oP '\d+x\d+'|line
1920x1080
xrandr|grep *працювати?
grepта sedспроби розбору xrandrрезультатів ( pastebin.com/uTVcjWCq ) були довшими.
xrandr|grep *|cut -d' ' -f1? (використовуючи відповідний рядок із вашої пасти @ TIO )
from ctypes import*
u=windll.user32.GetSystemMetrics;
print u(0),'x',u(1)
print u(0),'x',u(1)менше, і його приклад ( посилання ) дозволяє
To clarify, If it's equivalent to the output from What is my screen resolution, It's valid.на цьому веб-сайті є пробіл між кожною частиною
' '⎕R'x'⍕⌽⊃⎕WG'DevCaps'
⎕WG'DevCaps' W indow G і ін Діви лід кришка abilitie з
⊃ вибрати першу властивість (висота, ширина)
⌽ реверс
⍕ формат у вигляді тексту
' '⎕R'x' R eplace простору з «х» S
Ox`ØP(s×Çn)±d+"x"+ight
Стислий рядок являє собою with(screen)width+"x"+height. Oxоцінює це як JavaScript, і результат друкується неявно.
(-4 знаки завдяки допомозі @AppleShell)
Так. вона компілює.
m[3];main(){SDL_Init(32);SDL_GetDesktopDisplayMode(0,m);printf("%dx%d",m[1],m[2]);}
Виконати з: gcc snippet.c -lSDL2 && ./a.out
mглобальний і intm[3];main(){...
m+1повинен бути коротшим, ніж m[1]правильно? чи це неможливо в C, але тільки в C ++? Напевно printf має деякий знак маркування
Дякую @ Jonathan-allan, @ felipe-nardi-batista
from Tkinter import*
print'%sx%s'%Tk().maxsize()
Для одиночних налаштувань дисплея це відповідає результатам із сайту. Це дає повну роздільну здатність для декількох дисплеїв.
print'x'....рятує байт
v=Tk().maxsize(), print'%sx%s'%vекономить 9 байт.
print'%sx%s'%Tk().maxsize()зберігає ще 4> _ <
xdpyinfo|grep dim|cut -d' ' -f7
З чоловічої сторінки:
xdpyinfo - is a utility for displaying information about an X server.
@Floris @manatwork Дякую за збереження кількох байтів!
-d\ замість -d' '. Тоді , коли мова йде як grepдля лінії і cutчастини цієї лінії, як правило , коротше , з одним awkвикликом: xdpyinfo|awk '/dim/&&$0=$2'.
dimensionsале я не маю xdpyinfoсвоєї системи ...
grep *розширює зірочку на всі файли в каталозі.
grep|cutє awk.
*0. Мій вихід xrandr *0 3360 x 1050 ( 889mm x 278mm ) *0.
-f2, чи можете ви перевірити xrandr|awk '/\*/{print $2}'?
тільки для повноти:
PRINT "256x192"
виходи 256x192. Спектр має фіксовану роздільну здатність екрану.
void setup(){fullScreen();print(width+"x"+height);}
Це виводить в наступному форматі: width height. Крім того, програма створює вікно, яке має розмір екрана, який ви використовуєте (оскільки кожна програма для обробки створює вікно за замовчуванням), і ця програма просто виводить висоту та ширину цього вікна / ескізу.
WIDTHxHEIGHT.
((import html-toolkit)
(htmlOnLoad #::((var S(index(getWindow)screen))
(print(+(index S width)"x"(index S height))))))
(Для читання додано розриви рядків)
Нарешті, мій модуль html-інструментарію отримує деяке використання! Працює лише за посиланням "Спробуйте в Інтернеті", але не працює з командного рядка.
Кілька байтів можна зберегти, якщо 1024 x 768можна отримати дійсний вихід. Ми просто використовуємо, (+ .. "x" .. )щоб уникнути printнеявного інтервалу.
2048x1080про справжній 4K-екран, який є насправді 4096x2160. Будь-яка ідея чому? Firefox 52.0 на FreeBSD 11.
window.screenі отримання widthі heightатрибути з нього. Я думаю, якщо ви відкрили консоль Firefox і ввели її, window.screenви побачите, мабуть, неправильні 2048x1080.
$ set `xrandr`;echo $6x$8
3360x1050
Тестували на коробці CentOS 5 з дисплеєм, перенаправленим на машину Cygwin з двома моніторами. Тут повний xrandrвихід
$ xrandr
SZ: Pixels Physical Refresh
*0 3360 x 1050 ( 889mm x 278mm ) *0
Current rotation - normal
Current reflection - none
Rotations possible - normal
Reflections possible - none
puts `xrandr`.split[7..9].join[0..-2]
Альтернативне рішення (52 байти):
puts `xrandr`.match(/t (\d+) (x) (\d+),/)[1..3].join