Wyjściowe wymiary terminali (kolumny i wiersze) w dowolnym dwucyfrowym formacie dziesiętnym *. Na przykład wyjście może być 80x25
.
Inspiracja . Szybka .
* Dane wyjściowe muszą mieć obie miary w jednym lub dwóch kolejnych wierszach, i może nie być więcej niż jedna linia wyjściowa i / lub końcowa (opcjonalnie po niej nowa linia). (Maksymalnie cztery) wiersze nie mogą być dłuższe niż max (cols, 1 + len (str (cols)) + len (str (ro ws))).
Odpowiedzi:
* sh, 9
Wynik:
źródło
sh
oznaczenie tak naprawdę nie ma sensu.Kod maszynowy 8086, 11 bajtów (jako funkcja, niekonkurujący)
Nie bardzo konkuruje, ponieważ nie ma widocznych wyników. To tylko pokazuje najkrótszą drogę do znalezienia aktualnych wymiarów ekranu, bez kodu płyty grzewczej wymaganego do drukowania.
Jak to działa:
Kod maszynowy 8086, 48 bajtów (jako kompletny program)
Jak to działa:
źródło
ret
? Nie jestem też pewien, czy wolno ci się ślinićds
. Może to wymagać przeniesienia do Meta, ponieważ funkcja działa więcej niż jeden raz, po prostu ma niepożądane skutki uboczne.RET
instrukcję na końcu funkcji?INT 20h
, a nie przezRET
, dokładnie dlatego, że po POPing wyjście przezRET
nie działa.Bash,
2220 znakówDzięki:
Przykładowy przebieg:
źródło
echo $COLUMNS\x$LINES
może o / p80x24
xterm, 6 bajtów
Ponieważ nie potrzebujesz określonego mrówczanu, możesz po prostu użyć polecenia
resize
(6 znaków) zxterm
:źródło
#xterm, 6 bytes
.sh, 20 bajtów
.. Może zbyt oczywiste
źródło
tput lines;!:0 cols
, prawda?Python 3 , 30 bajtów
Ponieważ nie działa w TIO, stosowana jest tam alternatywa:
Wypróbuj online!
źródło
os
?import os
ios.
jest krótszy niżfrom...
.C (tylko Linux),
6361źródło
m[0]
przez*m
.m
argumentując argument main:main(short m){ioctl(0,21523,&m);printf("%dx%d",m,(&m)[1]);}
main(int m){ioctl(0,21523,&m);printf("%x",m);}
byłoby 46 bajtów, z rozmiarami wydrukowanymi w podstawie 16 i bez separatora (innego niż możliwe zera wiodące) między kolumnami i wierszami.APL (Dyalog) , 3 bajty
(Już opublikowanie odpowiedzi, ponieważ to naprawdę nie jest moje wyzwanie).
⎕SD
S creen D imensionsPrzykładowy przebieg:
źródło
C #, 59 bajtów
Kompiluje się
Func<int, string
jednak, ale dane wejściowe nie są używane.źródło
NodeJS,
504846 bajtówWykorzystuje
process.stdout
scolumns
irows
wartości.źródło
console.log([s.columns,s.rows])
.with(process.stdout)console.log(columns,rows)
with(process.stdout)write(columns+[rows])
. Lub, jeśli to się nie liczy:with(process.stdout)write(columns+' '+rows)
Rubin,
413621 + 13 = 34 bajtyUruchom z flagą wiersza poleceń
-rio/console
To mój pierwszy golf Ruby, więc powiedz mi, czy mogę coś zrobić lepiej.
5 bajtów zaoszczędzonych dzięki SztupY
2 bajty zapisane dzięki manatwork
Wyjściowa wysokość, a następnie szerokość jako lista długości dwóch.
Przykładowe dane wyjściowe:
źródło
io/console
, żadna powłoka nie wykona na niej niepożądanego rozszerzenia, jeśli pozostanie bez cudzysłowu.GNU Forth, 7 bajtów
Przykładowe dane wyjściowe
Wypróbuj online!
źródło
C # 94 bajtów (cała aplikacja)
Całą odpowiedź aplikacji MetaColon można znacznie skrócić:
źródło
Tryb PowerShell +, 11 bajtów?
Dane wyjściowe mogą być nie do zaakceptowania w obecnej formie.
mode
Polecenie to narzędzie domyślne oknaMeta Post dotyczący korzystania
mode
bez podawaniacon
pobiera wyjście z trybu:
następnie wyjście z czwartej i piątej linii (
[3,4]
):źródło
(mode)[3,4]-replace"\D"
(mode con)[3..4]
con
konieczne? dostaje to pierwsze wiersze absolutnie i wierzę, żecon
zawsze jest pierwszy? powiedziałbym, żestandard
system będzie miał tylko jedno wyjście dla trybu, co powinniśmy założyć?Szybki, 99 bajtów
Dziękujemy chłopakom z Vapor za pakiet konsoli .
źródło
Partia,
25191817 bajtówZapisano 6 bajtów, przesyłając bezpośrednio do polecenia „znajdź”.
Zaoszczędzono 1 bajt dzięki Adám / OP .
Zapisano 1 bajt dzięki komentarzowi OP .
To powoduje wypisanie samego polecenia, ponieważ echo jest włączone, ale, jak skomentował OP , linia wiodąca jest OK.
W zależności od konfiguracji może działać tylko z 13 bajtami. Wydaje się jednak, że posiadanie czegokolwiek przy użyciu portów COM spowoduje nadmiernie szczegółowe wyjście.
źródło
s:
→n
.mode
ale odkryłem, że dodanie `con` było krótsze niż szukanie dwóch różnych zestawów znakówfindstr
.@mode|find "L" /i
:? Zwraca linie, kolumny i opóźnienie klawiatury z 17 bajtami zamiast 18 powyżej. Czy te linie wiodące / końcowe muszą być puste?C #, 85 bajtów
Jeśli chcesz cały kod aplikacji, mielibyśmy
115 10194 bajtów :Jednak można oznaczać bufora rozmiar jak dobrze, że mamy 85 bajtów ponownie
Lub jako cały kod aplikacji (oczywiście ponownie
115 10194 bajtów ):Za pomocą Caiusa Jarda zapisano 14 bajtów w całym kodzie aplikacji
źródło
using c=System.Console;class P{static void Main(){c.WriteLine(c.WindowWidth);c.Write(c.WindowHeight);}}
Java 8 (bez bibliotek), Windows, 270 bajtów
Publikowanie osobno według rekomendacji Adama.
Nie golfowany:
źródło
cmd/c mode
zamiastcmd /c mode
.cmd/c
skutkującąCreateProcess error=2
. :(8 ,
241612 bajtówPoprawiono po komentarzu Andersa Tornblada.
Zwraca bieżący rozmiar konsoli w wierszach i kolumnach drukujących zawartość stosu.
Wynik:
źródło
swap
?Java + * nix, 113
Nie golfowany:
ProcessBuilder.inheritIO
powoduje dziedziczenie wejścia / wyjścia procesu potomnego; jest to ustawienie domyślne w C zexec
. W Javie wartością domyślną jest „potokowy”. Jak widać, jest to o wiele krótsze niż używanieRuntime.getRuntime().exec()
(co jest również przestarzałe) i konstruowanieBufferedReader
długiego i skomplikowanego wywołania, które jest wynikiem wyraźnej niechęci projektantów Java API do dodawania przeciążenia dla wygody.źródło
ProcessBuilder
będzie działać w systemie Windows, alemode
wyjścia polecenia więcej niż 4 linie :(Czerwone , 19 bajty
Wynik:
Można również uzyskać rozdzielczość ekranu, jak w poprzednim pytaniu
źródło
Commodore 64 BASIC, 7 bajtów
C64 ma stałą konsolę tekstową o wymiarach 40 x 25 znaków. Zapytanie o rozmiar konsoli nie jest konieczne, co jest dobre, ponieważ nie ma możliwości sprawdzenia go.
źródło
Kotlin + Jline 2 , 58 bajtów
Bo czemu nie. Okazuje się, że standardowa biblioteka nie ma sposobu na określenie wielkości konsoli, więc wymagane jest wciągnięcie biblioteki, aby nie chcieć złotego uruchamiania innego procesu i analizowania strumienia wejściowego ... byłoby wstydem, gdyby ktoś to zrobił ...
źródło
Ułożone , 7 bajtów
Pozostawia dane wyjściowe na stosie, co jest dozwolone domyślnie. Przykładowe użycie:
Bonus:
termdim'x'#`
mieć117x26
.źródło
C (linux, tylko C89),
4541inspirowane https://codegolf.stackexchange.com/a/118696/42186 przez @dieter
daje to rozmiar jako dane binarne. Nie jestem pewien, czy liczy się to jako „dowolny format”. Potrzebujesz czegoś dodatkowego (mniej, zrzut heksadecymalny, od, tabela ascii) (lub ezoterycznego emulatora terminala, który automatycznie robi to za Ciebie), aby był czytelny dla człowieka. Przykładowe użycie:
Rozmiar terminala wynosi 204 kolumny na 58 wierszy.
Dzięki @ Random832 za korzystanie
od
zamiasthexdump
.źródło