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ón1,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).Respuestas:
CJam,
888382 bytesPruébalo aquí.
Creo que puedo ahorrar mucho en cómo detecto dónde están las esquinas. Pero al menos finalmente sé cómo serán las próximas iteraciones:
N = 3 :
N = 4:
Al observar esto, parecen ser mucho más regulares de lo que esperaba, y algún tipo de solución analítica que los genere directamente podría ser mucho más corta.
fuente
Python 2, 269 bytes
No coloca las formas en cada esquina, pero determina si un personaje está en el copo de nieve según las coordenadas.
Primero se genera una esquina, y luego se refleja alrededor del copo de nieve completo.
fuente