Debido a esto, familias de todo el mundo están construyendo árboles de Navidad.
Pero este árbol normal puede volverse aburrido después de un tiempo, ¡así que hagamos un árbol ASCII!
Las hojas están representadas por #
y deben organizarse como se muestra en la salida de ejemplo. Tenemos 5 bolas ( O
) y 5 bastones de caramelo ( J
), que colocamos al azar alrededor del árbol. También tenemos una vela en la parte superior.
Entrada: ninguna
Salida:
^
|
###
##O##
#######
#####
####J##
#########
####O######
#############
###J###
#########
####O###J##
#######O#####
###J########O##
###########J#####
###
###
Reglas (si no está en las reglas, suponga que puede)
Las bolas y los bastones de caramelo deben colocarse al azar en el árbol y deben tener al menos una hoja entre ellos, sin contar las diagonales.
Cada hoja debe tener una probabilidad distinta de cero de obtener una bola o un bastón de caramelo.
Puede haber espacios iniciales o finales en cada línea, siempre que el árbol tenga la forma adecuada.
Este es el código de golf , por lo que gana el código más corto en caracteres.
Respuestas:
JavaScript (ES6), 148 bytes
Con suerte, esto debería cumplir con la condición de "lo suficientemente aleatorio".
Manifestación
Mostrar fragmento de código
fuente
j=new Date
conj=0
aj=12
.)CS-Script - 306 bytes
Una vez más con formato y comentarios:
Básicamente es C #, pero usar CS-Script me permite omitir toda la placa de caldera.
Pruébalo aquí!
Notas:
En la actualidad, esto genera otra línea de espacios en blanco debajo del árbol para asegurarse de que 'verificar los adornos existentes debajo' no arroje una excepción IndexOutOfBoundsException. Otras soluciones serían:
Lo dejaré al OP si esto se cambia.
Por último, este es mi primer golf, por lo que cualquier comentario es apreciado. ;)
fuente
using System;
embargo, cree que es posible que deba incluir en su recuento de bytes, ya que no puede usarloRandom
oConsole
sin él. meta.codegolf.stackexchange.com/questions/10081/… Lamento agregar 13 bytes :(using System;
no es necesario (importa automáticamente espacios de nombres comunes). Pero tal vez estoy dividiendo pelos. ¯_ (ツ) _ / ¯_=>{var c=... return c;}
TSQL,
556532494476 bytesEste script debe ejecutarse en la base de datos maestra
Golfizado:
Sin golf:
Pruébalo
fuente
Python 3 -
450427 bytesSé que
450
es demasiado para Python. Pero pero.....Si
for i in'O'*...
se convierte en una mejor función recursiva, entonces se pueden reducir muchos bytes.Pruébalo aquí
Editar :
Se guardaron 2 bytes al usar
;
como delimitador y varios bytes al tomar el recuento de bytes de nueva línea como 1 byte.fuente
JavaScript, 204 bytes
fuente
\n
como 1 byte?PHP, 200 bytes
podría ser más corto con un enfoque más sofisticado; pero tengo prisa
requiere PHP 5.6 o 7.0. Ejecutar
-nr
o probarlo en línea .fuente
Scala, 329 bytes
fuente