Desafío
El invierno se acerca rápidamente con muchos lugares que reciben las primeras capas de nieve para la temporada 15/16, entonces, ¿por qué no rompemos las máquinas de nieve y codificamos algo de nieve?
Dado un número entero a n
través de STDIN, genera una representación ASCII del copo de nieve de Beta (como se describe a continuación) a nivel n
.
Copo de nieve de Beta
El copo de nieve comienza en el nivel 0 con una sola x:
x
Luego, en cada esquina agrega una de estas formas:
x
xx
Agrega la forma anterior a una esquina superior derecha. Para una esquina inferior derecha, gírela 90 ° en sentido horario, para la esquina inferior izquierda, 180 ° en sentido horario y para la esquina superior izquierda, 270 ° en sentido horario.
Si haces eso, obtienes la siguiente forma:
x x
xx xx
x
xx xx
x x
Tome nota de la orientación de las formas. Continuando agregamos más de las formas a cada esquina, usando las reglas de orientación descritas anteriormente, al diagrama para obtener el nivel 2:
x x x
xxxxxxx
xx x x xx
xxx xxx
xx x xx
xxx xxx
xx x x xx
xxxxxxx
x x x
Tenga en cuenta que las formas solo se agregan a x
s con dos o más lados expuestos (lo que se conoce como una esquina arriba).
Las formas en L pueden superponerse para valores n
superiores a 1. Por ejemplo:
Si el nivel 0 es:
x x
Luego debe haber superposiciones en el nivel 1 (indicado con un o
, no incluya el o
en su salida):
x o x
xxxoxxx
x x
xxxoxxx
x o x
Su tarea es generar esta representación ASCII del copo de nieve de Beta.
Prima
Habrá una bonificación de 50 repeticiones para el programa más corto que, cuando n
es negativo, genera el copo de nieve (a nivel n*-1
) como una imagen o gráficamente en la pantalla.
Puede tener programas separados para la recompensa y la tarea principal.
Victorioso
El programa más corto en bytes gana.
2 or more exposed sides
regla? Suponiendo centro está 0,0
a continuación 1,1
, 1,-1
, -1,-1
, -1,1
todos tienen 2 lados expuestos (los lados de cara a los otros 4 puntos). ¿No deberían ser más de 3 lados abiertos para evitar el relleno? O, alternativamente, solo se expande si tiene 0 o 1 vecinos (cardinal).