Mostre o resultado aleatório de um lançamento de dados, se feito com um dado em forma de cubo, em ASCII.
$ dice
deve resultar em um
-----
| |
| o |
| |
-----
-----
|o |
| |
| o|
-----
-----
|o |
| o |
| o|
-----
-----
|o o|
| |
|o o|
-----
-----
|o o|
| o |
|o o|
-----
-----
|o o|
|o o|
|o o|
-----
alert('-----\n|o o|\n| |\n|o o|\n-----');
é um programa correto.print("⚀⚁⚂⚃⚄⚅"(util.Random.nextInt(6)))
(utf-art).Respostas:
Golfscript, 56 caracteres
A solução pode ser testada aqui .
fonte
Python,
112110 caracteresfonte
id(0)%7%6
? Não vai ser uma distribuição uniforme, mas é significativamente mais curto ...Ruby 1.9, 80
84caracteresfonte
s.reverse
Windows PowerShell, 89
939697101119caracteresfonte
Python, 109 caracteres unicode
Nota: Isso não usa a função aleatória, por isso não será tão aleatório como os outros.
fonte
Perl, 74 caracteres
Corra com
perl -M5.010
.(Observe que as novas linhas da lista fazem parte da sequência e não são apenas inseridas para facilitar a leitura.)
Se você se perguntar o que diabos a
$->$
operação faz, as seguintes notas de leitura podem ser úteis:A variável
$-
trunca automaticamente o valor atribuído a um número inteiro.A variável
$"
está predefinida para um único espaço.o
é uma palavra de barra (representando"o"
).fonte
Jogador de golfe pela primeira vez
Python, 161 caracteres
fonte
Lisp comum 170
Observe que as novas linhas são significativas. Diferente dessas linguagens tolas e "modernas", o Common Lisp favorece a legibilidade em detrimento da sucessão, então temos a construção "concatenar 'string ..." complicada e nenhuma maneira sucinta de referenciar um caractere em uma string.
fonte
JavaScript (
169168141137)Não parece correto
alert
porque não é uma fonte de largura fixa, mas tenha certeza de que está correto ou teste ao emitir uma<pre>
tag e executarwriteln
:-)Prova: http://jsfiddle.net/d4YTn/3/ (funciona apenas em navegadores compatíveis com JS 1.7, como o FF2 +)
Créditos:
Math
truque hackeado da @minitech e lógica de impressão da @Keith.Edit : Remova o
Math
truque do @minitech porque ele realmente o tornou mais longo :-)Editar 2 : economize 17 caracteres. Peça o truque de @Keith para tirar proveito da simetria dos dados. Use o truque para simplificar a conversão de números aleatórios em int.
Editar 3 : Remover
1+
para mudar o número aleatório de 1-6 para 0-5 e salvar 2 caracteres. Como resultado, eu também pode mudarr%2-1
parar%2
e salvar mais 2 caracteres.Edit 4 : jsfiddle está funcionando novamente. Atualizada :-)
fonte
|0
truque :-)JavaScript,
215213212145135Bata mellamokb, mas mudei completamente minha solução original. Se você deseja que isso pareça bom, use o Google Chrome ou algo assim, mude
alert
paraconsole.log
e pronto.Edit: o truque emprestado do mellamokb | 0 para salvar alguns personagens.
fonte
M=Math
truque que eu tentei roubar realmente acaba sendo um personagem mais[s.substr(0,3),s.substr(3,3),s.substr(6,3)].join('|\n|')
s
é uma matriz. Vou reiniciar e tentar novamente.PHP 119
126128131188201213234239fonte
?>
pode ser omitido, economizando 2 caracteres.$r
, salvando outro caractere. O espaço depois tambémecho
pode ser omitido. Você também pode incorporar a inicialização$a
, levando-o a 128. Colocar quebras de linha diretamente na cadeia de caracteres, em vez de escapar delas,\n
salva outros dois caracteres.C - 215
Compila com:
fonte
/D
opção ... Por favor, não trapaceie colocando aleatoriamente define no comando de compilação.Python 133
fonte
F # -
165161 caracteresfonte
Python 108
114119121122129wtf! parece a primeira solução ?! mas iam não ... trapaceiro
108
119
fonte
perl -
111103101fonte
die
vez deprint
/say
APL (69)
fonte
Haskell, 154
162167172 172caracteresEle usa aproximadamente a mesma ideia que a Python.
Versão legível:
fonte
Golfscript
8065O programa pode ser testado aqui
fonte
PHP 126
127179Outra solução PHP. Cheguei à Oleg quase na mesma solução.
fonte
Python (153)
Esta não é, de longe, a menor submissão, eu apenas achei que parecia legal :)
fonte
Q (120 caracteres)
Uso:
fonte
C,
168164163 caracteresDesculpe se estou um pouco atrasado para a festa, mas como nenhuma resposta foi aceita ainda, e a única outra solução C foi um pouco mais longa, aqui vai ...
Você pode remover o include e salvar outros 18 caracteres, mas ele não será compilado sem avisos.
Edit :
usando o truque de linha de comando do user23241 , o menor código C que produz o resultado (sem avisos do compilador) tem apenas 12 caracteres:
Pelo menos se você trapacear e usar a seguinte linha de comando para compilar:
fonte
c, 140 caracteres
fonte
PHP: 1284
Este é o meu segundo CodeGolf, e eu não estava realmente buscando tanto falta quanto mutabilidade de código e correspondendo aos critérios de jogo.
Você pode gerar dados de 4 lados e 6 lados.
Talvez mais tarde eu o reduza e o torne um pouco mais dinâmico.
Saída 4 lados:
Saída 6 lados:
fonte
JavaScript 220 bytes
fonte
Ruby,
134 132 119 118 117 112111 caracteres,Meu segundo golfe na vida. Eu usei números mágicos. Algum conselho, por favor?
Saídas:
fonte
VimScript - 169 caracteres
Observe que este não é o Vim puro, pois o Vim não possui um gerador de números aleatórios embutido. É claro que existem extensões que podem ser baixadas para ele, mas como eu sou um homem Linux exigente, pensei: por que não confiar apenas no ambiente do shell?
Código
Explicação
o
. Observe que isso deve ser otimizado para o menor número de caracteres e não o menor número de movimentos (ou seja, haveria maneiras mais rápidas de pressionar as teclas se eu o estivesse fazendo manualmente -if
tudo na minha cabeça).^
não é literal^
mas uma indicação de uma sequência de escape.Teste
Mude
RANDOM
paraDICEVALUE
, salve o código VimScript edice.vim
, em seguida, execute este script shell, fornecendo como argumentos os números que você deseja testar:fonte
Mathematica
166161 146143 caracteresSaída de amostra:
Se os colchetes da matriz ofenderem, você poderá substituí-lo
MatrixForm
porTableForm
no código.fonte
PHP 5.4, 107 bytes
102 bytes *
** Infelizmente, a versão de 102 bytes emite avisos devido à conversão de
bool
paraint
ao indexar a sequência$d
. Fora isso, funciona bem. *fonte