Indiquez les dimensions du terminal (colonnes et lignes) dans n'importe quel format décimal à deux chiffres *. Par exemple, une sortie pourrait être 80x25
.
Inspiration . Invite .
* La sortie doit avoir les deux mesures sur une ou deux lignes consécutives, et il ne peut pas y avoir plus d'une ligne de sortie principale et / ou inférieure (éventuellement suivie d'une nouvelle ligne). Les lignes (jusqu'à quatre) ne doivent pas être plus longues que max (colonnes, 1 + len (str (colonnes)) + len (str (colonnes))).
Réponses:
* sh, 9
Sortie:
la source
sh
désignation n'a pas vraiment de sens de toute façon.Code machine 8086, 11 octets (en tant que fonction, non concurrents)
Pas vraiment en compétition car il n'a pas de sortie visible. Ceci montre simplement le moyen le plus rapide de trouver les dimensions actuelles de l'écran, sans le code standard requis pour l'impression.
Comment ça marche:
Code machine 8086, 48 octets (en tant que programme complet)
Comment ça marche:
la source
ret
? De plus, je ne suis pas sûr que vous ayez le droit de vous écraserds
. Cela pourrait devoir être pris en compte par Meta, car la fonction fonctionne plus d’une fois, elle a juste des effets secondaires indésirables.RET
instruction à la fin de la fonction?INT 20h
, et non viaRET
, exactement parce qu'après POPing, la sortie viaRET
ne fonctionne plus.Bash,
22 à20 caractèresGrâce à:
Échantillon échantillon:
la source
echo $COLUMNS\x$LINES
can o / p80x24
xterm, 6 octets
Comme vous n'avez pas besoin de formate spécifique, vous pouvez simplement utiliser la commande
resize
(à 6 caractères) dexterm
:la source
#xterm, 6 bytes
.sh, 20 octets
.. Trop évident, peut-être ..
la source
tput lines;!:0 cols
, non?Python 3 , 30 octets
Comme cela ne fonctionne pas dans TIO, une alternative est utilisée ici:
Essayez-le en ligne!
la source
os
?import os
etos.
est plus court quefrom...
.C (Linux uniquement),
6361la source
m[0]
par*m
.m
un argument de main:main(short m){ioctl(0,21523,&m);printf("%dx%d",m,(&m)[1]);}
main(int m){ioctl(0,21523,&m);printf("%x",m);}
correspondrait à 46 octets, avec des tailles imprimées en base 16 et sans séparateur (autre que les zéros de gauche possibles) entre les colonnes et les lignes.APL (Dyalog) , 3 octets
(Afficher une réponse déjà puisque ce n’est vraiment pas mon défi.)
⎕SD
S creen D imensionsÉchantillon échantillon:
la source
C #, 59 octets
Compile en un
Func<int, string
, cependant, l'entrée n'est pas utilisée.la source
NodeJS,
504846 octetsUtilise
process.stdout
scolumns
etrows
valeurs.la source
console.log([s.columns,s.rows])
.with(process.stdout)console.log(columns,rows)
with(process.stdout)write(columns+[rows])
. Ou, si ça ne compte pas:with(process.stdout)write(columns+' '+rows)
Ruby,
413621 + 13 = 34 octetsExécuter avec l'indicateur de ligne de commande
-rio/console
C'est mon premier golf Ruby, alors dis-moi s'il y a quelque chose que je peux faire de mieux.
5 octets économisés grâce à SztupY
2 octets économisés grâce à manatwork
Ceci affiche la hauteur puis la largeur sous forme de liste de longueur deux
Exemple de sortie:
la source
io/console
, aucun shell n'effectuera une expansion non désirée s'il n'est pas laissé entre guillemets.GNU Forth, 7 octets
Exemple de sortie
Essayez-le en ligne!
la source
C # 94 octets (application entière)
Toute la réponse de l'application MetaColon peut être raccourcie beaucoup:
la source
Mode PowerShell +, 11 octets?
La sortie peut ne pas être acceptable dans sa forme actuelle.
la
mode
commande est un utilitaire Windows par défautMeta Post concernant l'utilisation de
mode
sans précisercon
obtient la sortie du mode:
puis les 4ème et 5ème lignes (
[3,4]
) produisant:la source
(mode)[3,4]-replace"\D"
(mode con)[3..4]
con
nécessaire? cela obtient les premières lignes absolument, et je croiscon
est toujours en premier? Je dirais qu'unstandard
système n'aura également qu'une sortie pour le mode, ce qui est ce que nous devrions supposer?Rapide, 99 octets
Merci aux gars de Vapor pour leur paquet Console .
la source
Lot,
25191817 octetsSauvegardé 6 octets en canalisant directement à la commande "find".
Sauvegardé 1 octet grâce à Adám / OP .
Enregistré 1 octet grâce au commentaire de OP .
Cela renvoie la commande elle-même puisque echo est activé mais, comme le commente l'OP , une ligne principale est OK.
Selon votre configuration, il peut ne fonctionner qu'avec 13 octets. Cependant, il semble que tout ce qui utilise les ports COM entraînera une sortie trop prolixe.
la source
s:
→n
.mode
mais que l'ajout de "con" était plus court que la recherche de deux jeux de caractères différents avecfindstr
.@mode|find "L" /i
? Il renvoie les lignes, les colonnes et le délai du clavier avec 17 octets au lieu des 18 ci-dessus. Est-ce que ces lignes doivent être vides?C #, 85 octets
Si vous voulez un code d'application complet, nous aurions
115 10194 octets :Cependant, vous pourriez aussi parler de la taille de la mémoire tampon , nous aurions 85 octets à nouveau
Ou sous forme de code d'application complet (à nouveau, évidemment,
115 10194 octets ):Sauvegardé 14 octets dans tout le code de l'application à l'aide de Caius Jard
la source
using c=System.Console;class P{static void Main(){c.WriteLine(c.WindowWidth);c.Write(c.WindowHeight);}}
Java 8 (pas de bibliothèques), Windows, 270 octets
Publication séparée sur recommandation d'Adam.
Ungolfed:
la source
cmd/c mode
au lieu decmd /c mode
.cmd/c
qui en résulteCreateProcess error=2
. :(8ème ,
241612 octetsRévisé après le commentaire de Anders Tornblad.
Renvoie la taille actuelle de la console en lignes et en colonnes imprimant le contenu de la pile.
Sortie:
la source
swap
?Java + * nix, 113
Ungolfed:
ProcessBuilder.inheritIO
provoque l'héritage d'une entrée / sortie d'un processus enfant; c'est le défaut en C avecexec
. En Java, la valeur par défaut est "piped". Comme vous pouvez le constater, cela est bien plus court que d'utiliserRuntime.getRuntime().exec()
(ce qui est également déconseillé) et de construire unBufferedReader
appel long et compliqué résultant de la réticence apparente des concepteurs d'API Java à ajouter une surcharge par souci de commodité.la source
ProcessBuilder
travailler sur Windows, mais lamode
commande génère plus de 4 lignes :(Rouge , 19 octets
Sortie:
Peut également obtenir la résolution de l'écran comme dans la question précédente
la source
Commodore 64 BASIC, 7 octets
Le C64 dispose d’une console texte de taille fixe de 40 x 25 caractères. Il n'est pas nécessaire d'interroger la taille de la console, ce qui est une bonne chose, car il n'y a aucun moyen de l'interroger.
la source
Kotlin + Jline 2 , 58 octets
Parce que pourquoi pas Il s'avère que la bibliothèque standard n'a en fait aucun moyen de déterminer la taille de la console, il est donc indispensable de rentrer une bibliothèque, de peur de lancer un autre processus et d'analyser le flux d'entrée ... ce serait dommage si quelqu'un le faisait.
la source
Empilés , 7 octets
Laisse la sortie sur la pile, comme cela est autorisé par défaut. Exemple d'utilisation:
Bonus: l'
termdim'x'#`
avoir117x26
.la source
C (linux, C89 seulement),
4541inspiré par https://codegolf.stackexchange.com/a/118696/42186 par @dieter
cela sort la taille sous forme de données binaires. Pas sûr que cela compte comme "n'importe quel format". Vous auriez besoin de quelque chose de plus (moins, hexdump, od, table ascii) (ou un émulateur de terminal ésotérique qui le fait automatiquement pour vous) pour le rendre lisible par l'homme. Exemple d'utilisation:
La taille du terminal est de 204 colonnes sur 58 lignes.
Merci à @ Random832 pour utiliser
od
au lieu dehexdump
.la source