Dimensões do terminal de saída (colunas e linhas) em qualquer formato decimal de dois números *. Por exemplo, uma saída poderia ser 80x25
.
Inspiração . Prompt .
* A saída deve ter as duas medidas em uma única ou duas linhas consecutivas e pode haver não mais do que uma linha de saída inicial e / ou final (opcionalmente seguida por uma nova linha). As (até quatro) linhas não devem ter mais que max (cols, 1 + len (str (cols)) + len (str (ro ws))).
Respostas:
* sh, 9
Saída:
fonte
sh
designação realmente não faz sentido de qualquer maneira.Código de máquina 8086, 11 bytes (em função, não concorrente)
Não é realmente competitivo, pois não possui saída visível. Isso está apenas mostrando a maneira mais curta de encontrar as dimensões atuais da tela, sem o código padrão necessário para a impressão.
Como funciona:
Código de máquina 8086, 48 bytes (como um programa completo)
Como funciona:
fonte
ret
? Além disso, não tenho certeza se você tem permissão para espancards
. Isso pode precisar ser levado para o Meta, pois a função funciona mais de uma vez, apenas tem efeitos colaterais indesejados.RET
instrução no final da função?INT 20h
, e não viaRET
, exatamente porque depois de sair do POPing viaRET
não funciona mais.Bash,
2220 caracteresGraças a:
Exemplo de execução:
fonte
echo $COLUMNS\x$LINES
pode o / p80x24
xterm, 6 bytes
Como você não precisa de formato específico, pode simplesmente usar o
resize
comando (6 caracteres) dexterm
:fonte
#xterm, 6 bytes
.sh, 20 bytes
.. Muito óbvio, talvez ..
fonte
tput lines;!:0 cols
, certo?Python 3 , 30 bytes
Como ele não funciona no TIO, uma alternativa é usada lá:
Experimente online!
fonte
os
?import os
eos.
é menor quefrom...
.C (somente Linux),
6361fonte
m[0]
por*m
.m
argumentando como principal:main(short m){ioctl(0,21523,&m);printf("%dx%d",m,(&m)[1]);}
main(int m){ioctl(0,21523,&m);printf("%x",m);}
teria 46 bytes, com tamanhos impressos na base 16 e sem separador (além dos possíveis zeros à esquerda) entre colunas e linhas.APL (Dyalog) , 3 bytes
(Postar uma resposta já que esse realmente não é o meu desafio.)
⎕SD
S creen D imensionsExemplo de execução:
fonte
C #, 59 bytes
Compila para a
Func<int, string
, no entanto, a entrada não é usada.fonte
NodeJS,
504846 bytesUsos
process.stdout
scolumns
erows
valores.fonte
console.log([s.columns,s.rows])
.with(process.stdout)console.log(columns,rows)
with(process.stdout)write(columns+[rows])
. Ou, se não contar:with(process.stdout)write(columns+' '+rows)
Ruby,
413621 + 13 = 34 bytesExecutar com o sinalizador de linha de comando
-rio/console
Este é o meu primeiro golfe Ruby, então me diga se há algo que eu possa fazer melhor.
5 bytes economizados graças ao SztupY
2 bytes economizados graças ao manatwork
Isso gera altura e largura como uma lista de comprimento dois.
Exemplo de saída:
fonte
io/console
, nenhum shell executará uma expansão indesejada nele se não for indicado.GNU adiante, 7 bytes
Saída de amostra
Experimente Online!
fonte
C # 94 bytes (aplicativo inteiro)
A resposta completa do aplicativo MetaColon pode ser bastante reduzida:
fonte
Modo PowerShell +, 11 bytes?
A saída pode não ser aceitável na forma atual.
o
mode
comando é um utilitário padrão do WindowsMeta Post sobre o uso de
mode
sem especificarcon
obtém a saída do modo:
então a quarta e a quinta linhas (
[3,4]
) produzindo:fonte
(mode)[3,4]-replace"\D"
(mode con)[3..4]
con
necessário? isso recebe absolutamente as primeiras linhas, e acredito quecon
seja sempre a primeira? Eu diria que umstandard
sistema também terá apenas uma saída para o modo, e é isso que devemos assumir?Rápido, 99 bytes
Obrigado ao pessoal do Vapor pelo pacote do console .
fonte
Lote,
25191817 bytesEconomizou 6 bytes canalizando diretamente para o comando "find".
Economizou 1 byte graças a Adám / OP .
Guardado 1 byte graças a um comentário de OP .
Isso gera o próprio comando, já que o eco está ativado, mas, como comentado pelo OP , uma linha inicial está OK.
Dependendo da sua configuração, ele pode funcionar com apenas 13 bytes. No entanto, parece que ter qualquer coisa usando portas COM causará saída excessivamente detalhada.
fonte
s:
→n
.mode
mas descobri que adicionar `con` era mais curto do que procurar por dois conjuntos diferentes de caracteresfindstr
.@mode|find "L" /i
:? Retorna Linhas, Colunas e Atraso do Teclado com 17 bytes em vez dos 18 acima. As linhas iniciais / finais precisam estar vazias?C #, 85 bytes
Se você deseja um código de aplicativo completo, teríamos
115 10194 bytes :No entanto, você também pode significar o tamanho do buffer , teríamos 85 bytes novamente
Ou como um código de aplicativo completo (obviamente
115 10194 Bytes novamente):Economizou 14 bytes em todo o código do aplicativo com a ajuda de Caius Jard
fonte
using c=System.Console;class P{static void Main(){c.WriteLine(c.WindowWidth);c.Write(c.WindowHeight);}}
Java 8 (sem bibliotecas), Windows, 270 bytes
Postagem separada por recomendação de Adam.
Ungolfed:
fonte
cmd/c mode
vez decmd /c mode
.cmd/c
resultando emCreateProcess error=2
. :(8 ,
241612 bytesRevisado após o comentário de Anders Tornblad.
Retorna o tamanho atual do console em linhas e colunas, imprimindo o conteúdo da pilha.
Saída:
fonte
swap
?Java + * nix, 113
Ungolfed:
ProcessBuilder.inheritIO
faz com que uma entrada / saída do processo filho seja herdada; esse é o padrão em C comexec
. Em Java, o padrão é "canalizado". Como você pode ver, isso é muito mais curto do que usarRuntime.getRuntime().exec()
(que também é preterido) e construir umaBufferedReader
chamada longa e complicada que é o resultado da aparente falta de vontade dos designers da API Java de adicionar uma sobrecarga por conveniência.fonte
ProcessBuilder
iria funcionar no Windows, mas asmode
saídas de comando mais de 4 linhas :(Vermelho , 19 bytes
Saída:
Também pode obter a resolução da tela como na pergunta anterior
fonte
Commodore 64 BASIC, 7 bytes
O C64 possui um console de texto de tamanho fixo de 40 x 25 caracteres. Não é necessário consultar o tamanho do console, o que é uma coisa boa, pois não há como consultá-lo.
fonte
Kotlin + Jline 2 , 58 bytes
Porque porque não? Acontece que a lib padrão, na verdade, não tem como determinar o tamanho do console, por isso é necessário puxar uma biblioteca, para que você não queira iniciar outro processo e analisar o fluxo de entrada ... seria uma pena se alguém fizesse isso.
fonte
Empilhados , 7 bytes
Deixa a saída na pilha, como é permitido por padrão. Exemplo de uso:
Bônus:
termdim'x'#`
tê-lo117x26
.fonte
C (linux, somente C89),
4541inspirado por https://codegolf.stackexchange.com/a/118696/42186 por @dieter
isso gera o tamanho como dados binários. Não tenho certeza se isso conta como "qualquer formato". Você precisaria de algo extra (tabela hexdump, od, ascii) (ou um emulador de terminal esotérico que faça isso automaticamente para você) para torná-lo legível por humanos. Exemplo de uso:
O tamanho do terminal é 204 cols por 58 linhas.
Obrigado a @ Random832 por usar em
od
vez dehexdump
.fonte