Muestre el resultado aleatorio de un lanzamiento de dados si se hace con un dado en forma de cubo, en ASCII.
$ dice
debería resultar en uno de
-----
| |
| 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-----');
es un programa correcto.print("⚀⚁⚂⚃⚄⚅"(util.Random.nextInt(6)))
(utf-art).Respuestas:
Golfscript, 56 caracteres
La solución se puede probar aquí .
fuente
Python,
112110 caracteresfuente
id(0)%7%6
? No va a ser una distribución uniforme, pero es significativamente más corta ...Ruby 1.9, 80
84caracteresfuente
s.reverse
Windows PowerShell, 89
939697101119caracteresfuente
Python, 109 caracteres unicode
Nota: Esto no utiliza la función aleatoria, por lo que no será tan aleatorio como lo hacen otros.
fuente
Perl, 74 caracteres
Corre con
perl -M5.010
.(Tenga en cuenta que las nuevas líneas en el listado son parte de la cadena y no solo se insertan para la legibilidad).
Si se pregunta qué diablos hace la
$->$
operación, las siguientes notas de lectura pueden ser útiles:La variable
$-
trunca automáticamente su valor asignado a un entero.La variable
$"
está preestablecida en un solo espacio.o
es una palabra sin formato (que representa"o"
).fuente
Golfista por primera vez
Python, 161 caracteres
fuente
Lisp común 170
Tenga en cuenta que las nuevas líneas son significativas. A diferencia de estos tontos lenguajes "modernos", Common Lisp favorece la legibilidad sobre la concisión, por lo que tenemos la engorrosa construcción "concatenate 'string ..." y no hay una forma sucinta de hacer referencia a un carácter en una cadena.
fuente
JavaScript (
169168141137)No se ve muy bien
alert
porque no es una fuente de ancho fijo, pero puede estar seguro de que es correcta, o pruebe emitiendo una<pre>
etiqueta y haciendowriteln
:-)Prueba: http://jsfiddle.net/d4YTn/3/ (solo funciona en navegadores compatibles con JS 1.7, como FF2 +)
Créditos:
Math
truco pirateado de @minitech y lógica de impresión de dados de @Keith.Editar : eliminar el
Math
truco de @minitech porque en realidad lo hizo más largo :-)Edición 2 : Guardar 17 caracteres. Pide prestado un truco a @Keith para aprovechar la simetría de los dados. Utilice el truco para simplificar la conversión de números aleatorios a int.
Edición 3 : Eliminar
1+
para cambiar el número aleatorio de 1-6 a 0-5 y guardar 2 caracteres. Como resultado, también puede cambiarr%2-1
ar%2
y guardar otros 2 caracteres.Edición 4 : jsfiddle está funcionando nuevamente. Actualizado :-)
fuente
|0
truco :-)JavaScript,
215213212145135Batí mellamokb, pero cambié mi solución original por completo. Si desea que esto se vea bien, use Google Chrome o algo así, cambie
alert
aconsole.log
y listo.Editar: prestado el truco | 0 de mellamokb para guardar algunos personajes.
fuente
M=Math
truco que intenté robar en realidad termina siendo un personaje más[s.substr(0,3),s.substr(3,3),s.substr(6,3)].join('|\n|')
s
es una matriz Voy a reiniciar e intentar nuevamente.PHP 119
126128131188201213234239fuente
?>
se puede omitir, ahorrándote 2 caracteres.$r
guardar otro carácter. El espacio posterior tambiénecho
se puede omitir. También puede alinear la inicialización de$a
, llevándolo a 128. Poner saltos de línea directamente en la cadena en lugar de escapar de ellos\n
guarda otros dos caracteres, entonces.C - 215
Compila con:
fuente
/D
cambio ... Por favor, no hagas trampa al poner definiciones aleatorias en el comando de compilación.Python 133
fuente
F # -
165161 caracteresfuente
Python 108
114119121122129wtf! parece la primera solución? pero yo no ... tramposo
108
119
fuente
Perl -
111103101fuente
die
lugar deprint
/say
APL (69)
fuente
Haskell, 154
162167172caracteresUtiliza aproximadamente la misma idea que la de Python.
Versión legible:
fuente
Golfscript
8065El programa se puede probar aquí.
fuente
PHP 126
127179Otra solución PHP. Llegué a casi la misma solución por Oleg.
fuente
Pitón (153)
Esta no es la presentación más pequeña, solo pensé que se veía bien :)
fuente
Q (120 caracteres)
Uso:
fuente
DO,
168164163 caracteresLo siento si llego un poco tarde a la fiesta, pero como todavía no se ha aceptado ninguna respuesta y la única otra solución C fue algo más larga, aquí va ...
Puede eliminar la inclusión y guardar otros 18 caracteres, pero luego no se compila sin advertencias.
Editar :
usando el truco de la línea de comandos de user23241 , el código C más corto que produce el resultado (sin advertencias del compilador) es solo 12 caracteres:
Al menos si haces trampa y usas la siguiente línea de comando para compilar:
fuente
c, 140 caracteres
fuente
PHP: 1284
Este es mi segundo CodeGolf, y realmente no estaba apuntando tanto a la brevedad como a la mutabilidad del código y a los criterios de juego.
Puedes generar dados de 4 lados y de 6 lados.
Tal vez más tarde lo acortaré y lo haré un poco más dinámico.
Salida de 4 lados:
Salida de 6 lados:
fuente
JavaScript 220 bytes
fuente
Ruby,
134 132 119 118 117 112111 caracteres,Mi segundo golf en la vida. He usado números mágicos. ¿Algún consejo por favor?
Salidas:
fuente
VimScript - 169 caracteres
Tenga en cuenta que esto no es puro Vim ya que Vim no tiene un generador de números aleatorios incorporado. Hay extensiones que se pueden descargar, por supuesto, pero como soy un hombre incondicional de Linux, pensé, ¿por qué no confiar en el entorno de shell?
Código
Explicación
o
's. Tenga en cuenta que esto está destinado a ser optimizado para el menor número de caracteres, no el menor número de movimientos (es decir, habría formas más rápidas en los giros de teclas si lo estuviera haciendo manualmente, haciendoif
todo lo que tengo en la cabeza).^
no es un literal^
sino una indicación de una secuencia de escape.Pruebas
Cambie
RANDOM
aDICEVALUE
, guarde el código VimScriptdice.vim
, luego ejecute este script de shell en él, dando como argumentos los números que desea probar:fuente
Mathematica
166161 146143 caracteresSalida de muestra:
Si las llaves de matriz ofenden, puede reemplazar
MatrixForm
conTableForm
en el código.fuente
PHP 5.4, 107 bytes
102 bytes *
** Desafortunadamente, la versión de 102 bytes emite avisos debido a la conversión de
bool
aint
al indexar la cadena$d
. Aparte de eso, funciona bien.*fuente