Dimensi terminal keluaran (kolom dan baris) dalam format desimal dua angka *. Sebagai contoh, sebuah output bisa saja 80x25
.
Inspirasi . Prompt .
* Keluaran harus memiliki kedua ukuran pada satu atau dua baris berturut-turut, dan mungkin tidak ada lebih dari satu jalur output terkemuka dan / atau trailing (opsional diikuti oleh baris baru). Garis (hingga empat) harus tidak lebih dari maks (cols, 1 + len (str (cols)) + len (str (ro ws)))).
Jawaban:
* sh, 9
Keluaran:
sumber
sh
sebutannya tidak masuk akal kok.8086 kode mesin, 11 byte (sebagai fungsi, tidak bersaing)
Tidak benar-benar bersaing karena tidak memiliki output yang terlihat. Ini hanya menunjukkan cara terpendek untuk menemukan dimensi layar saat ini, tanpa kode boilerplate yang diperlukan untuk pencetakan.
Bagaimana itu bekerja:
8086 kode mesin, 48 byte (sebagai program lengkap)
Bagaimana itu bekerja:
sumber
ret
? Juga, saya tidak yakin bahwa Anda diizinkan untuk mengalahkands
. Ini mungkin perlu dibawa ke Meta, karena fungsinya bekerja lebih dari sekali, itu hanya memiliki efek samping yang tidak diinginkan.RET
instruksi di akhir fungsi?INT 20h
, bukan melaluiRET
, tepatnya karena setelah keluar dari POPingRET
tidak berfungsi lagi.Bash,
2220 karakterTerimakasih untuk:
Contoh dijalankan:
sumber
echo $COLUMNS\x$LINES
dapat o / p80x24
xterm, 6 byte
Karena Anda tidak memerlukan format khusus, Anda cukup menggunakan perintah
resize
(6 karakter) darixterm
:sumber
#xterm, 6 bytes
.sh, 20 byte
.. Terlalu jelas, mungkin ..
sumber
tput lines;!:0 cols
, kan?Python 3 , 30 byte
Karena tidak berfungsi di TIO, sebuah alternatif digunakan di sana:
Cobalah online!
sumber
os
?import os
danos.
lebih pendek darifrom...
.C (hanya linux),
6361sumber
m[0]
dengan*m
.m
argumen main:main(short m){ioctl(0,21523,&m);printf("%dx%d",m,(&m)[1]);}
main(int m){ioctl(0,21523,&m);printf("%x",m);}
akan menjadi 46 byte, dengan ukuran yang dicetak dalam basis 16 dan tidak ada pemisah (selain nol terkemuka mungkin) antara cols dan baris.APL (Dyalog) , 3 byte
(Memposting jawaban sudah karena ini sebenarnya bukan tantangan saya.)
⎕SD
S creen D imensionsContoh dijalankan:
sumber
C #, 59 byte
Mengkompilasi ke
Func<int, string
, bagaimanapun, input tidak digunakan.sumber
NodeJS,
504846 bytePenggunaan
process.stdout
scolumns
danrows
nilai-nilai.sumber
console.log([s.columns,s.rows])
.with(process.stdout)console.log(columns,rows)
with(process.stdout)write(columns+[rows])
. Atau, jika tidak masuk hitungan:with(process.stdout)write(columns+' '+rows)
Ruby,
413621 + 13 = 34 byteJalankan dengan bendera baris perintah
-rio/console
Ini adalah golf Ruby pertama saya, jadi beri tahu saya jika ada yang bisa saya lakukan dengan lebih baik.
5 byte disimpan berkat SztupY
2 byte disimpan berkat manatwork
Ini menghasilkan tinggi kemudian lebar sebagai panjang dua daftar.
Contoh output:
sumber
io/console
, shell tidak akan melakukan ekspansi yang tidak diinginkan di atasnya jika dibiarkan kutip.GNU Forth, 7 byte
Output Sampel
Cobalah secara Online!
sumber
C # 94 byte (seluruh aplikasi)
Seluruh jawaban aplikasi MetaColon dapat dipersingkat cukup banyak:
sumber
Mode PowerShell +, 11 Bytes?
Output mungkin tidak dapat diterima dalam bentuk saat ini.
yang
mode
perintah adalah utilitas bawaan windowsMeta Post tentang penggunaan
mode
tanpa menentukancon
mendapatkan output dari mode:
kemudian baris 4 & 5 (
[3,4]
) menghasilkan:sumber
(mode)[3,4]-replace"\D"
(mode con)[3..4]
con
perlu? ini benar-benar mendapat garis pertama, dan saya percayacon
selalu pertama? saya akan mengatakan suatustandard
sistem juga hanya akan memiliki satu output untuk mode, yang harus kita asumsikan?Swift, 99 byte
Terima kasih kepada orang-orang di Vapor untuk paket Konsol mereka .
sumber
Batch,
25191817 byteDisimpan 6 byte dengan memipakan langsung ke perintah "find".
Disimpan 1 byte berkat Adám / OP .
Disimpan 1 byte berkat komentar oleh OP .
Ini menampilkan perintah itu sendiri karena gema aktif tetapi, seperti yang dikomentari oleh OP , garis terdepan adalah OK.
Tergantung pada pengaturan Anda, ini mungkin bekerja hanya dengan 13 byte. Namun, tampaknya memiliki sesuatu yang menggunakan port COM akan menyebabkan output yang terlalu bertele-tele.
sumber
s:
→n
.mode
tetapi menemukan bahwa menambahkan `con` lebih pendek daripada mencari dua set karakter yang berbedafindstr
.@mode|find "L" /i
? Ia mengembalikan Lines, Columns, dan Keyboard Delay dengan 17 byte, bukan 18 di atas. Apakah garis depan / belakang harus kosong?C #, 85 Bytes
Jika Anda ingin seluruh kode aplikasi, kami memiliki
115 10194 Bytes :Namun, Anda dapat berarti ukuran Buffer juga, kami akan memiliki 85 Bytes lagi
Atau secara keseluruhan kode aplikasi (jelas
115 10194 Bytes lagi):Disimpan 14 Bytes dalam seluruh kode aplikasi dengan bantuan Caius Jard
sumber
using c=System.Console;class P{static void Main(){c.WriteLine(c.WindowWidth);c.Write(c.WindowHeight);}}
Java 8 (tanpa perpustakaan), Windows, 270 byte
Posting secara terpisah berdasarkan rekomendasi Adam.
Tidak Disatukan:
sumber
cmd/c mode
alih-alihcmd /c mode
.cmd/c
menghasilkanCreateProcess error=2
. :(8 ,
241612 byteDirevisi setelah komentar Anders Tornblad.
Mengembalikan ukuran konsol saat ini dalam baris dan kolom yang mencetak konten tumpukan.
Keluaran:
sumber
swap
?Java + * nix, 113
Tidak Disatukan:
ProcessBuilder.inheritIO
menyebabkan input / output proses anak diwarisi; ini adalah default dalam C withexec
. Di Jawa, defaultnya adalah "piped." Seperti yang Anda lihat, ini jauh lebih pendek daripada menggunakanRuntime.getRuntime().exec()
(yang juga sudah usang) dan membangunBufferedReader
panggilan yang panjang dan berbelit-belit yang merupakan hasil dari keengganan desainer Java API untuk menambah kelebihan demi kenyamanan.sumber
ProcessBuilder
akan bekerja pada Windows, tetapimode
perintah ini menghasilkan lebih dari 4 baris :(Merah , 19 Bytes
Keluaran:
Bisa juga mendapatkan resolusi layar seperti pada pertanyaan sebelumnya
sumber
Commodore 64 BASIC, 7 byte
C64 memiliki konsol teks ukuran tetap 40 x 25 karakter. Tidak perlu meminta ukuran konsol, yang merupakan hal yang baik, karena tidak ada cara untuk menanyakannya.
sumber
Kotlin + Jline 2 , 58 byte
Karena mengapa tidak. Ternyata lib standar sebenarnya tidak memiliki cara untuk menentukan ukuran konsol sehingga diperlukan perpustakaan, jika Anda ingin emas meluncurkan proses lain dan mem-parsing aliran input ... akan memalukan jika seseorang melakukan itu ..
sumber
Ditumpuk , 7 byte
Meninggalkan output pada stack, sebagaimana diizinkan per default. Contoh penggunaan:
Bonus:
termdim'x'#`
untuk memilikinya117x26
.sumber
C (linux, C89 saja),
4541terinspirasi oleh https://codegolf.stackexchange.com/a/118696/42186 oleh @dieter
ini menampilkan ukuran sebagai data biner. Tidak yakin apakah ini dianggap sebagai "format apa pun". Anda membutuhkan sesuatu yang ekstra (kurang, hexdump, od, ascii table) (atau emulator terminal esoterik yang secara otomatis melakukan ini untuk Anda) untuk membuatnya dapat dibaca manusia. Contoh penggunaan:
Ukuran terminal adalah 204 cols dengan 58 baris.
Terima kasih kepada @ Random832 untuk menggunakan
od
alih-alihhexdump
.sumber