Desafio
O inverno está se aproximando rapidamente, com muitos lugares recebendo as primeiras camadas de neve para a temporada 15/16, então por que não quebramos as máquinas de neve e nos codificamos um pouco de neve?
Dado um número inteiro nvia STDIN, produza um floco de neve de uma representação ASCII Beta (como descrito abaixo) no nível n.
Floco de neve de Beta
O floco de neve começa no nível 0 com um único x:
x
Em seguida, em cada canto, você adiciona uma destas formas:
x
xx
Você adiciona a forma acima ao canto superior direito. Para um canto inferior direito, gire-o 90 ° no sentido horário, no canto inferior esquerdo, 180 ° no sentido horário e no canto superior esquerdo, 270 ° no sentido horário.
Se você fizer isso, obtém a seguinte forma:
x x
xx xx
x
xx xx
x x
Anote a orientação das formas. Continuando, adicionamos mais formas a cada canto, usando as regras de orientação descritas acima, ao diagrama para obter o nível 2:
x x x
xxxxxxx
xx x x xx
xxx xxx
xx x xx
xxx xxx
xx x x xx
xxxxxxx
x x x
Observe que as formas são adicionadas apenas a xs com dois ou mais lados expostos (que é referido como um canto acima).
As formas em L podem e se sobrepõem a valores nmaiores que 1. Por exemplo:
Se o nível 0 for:
x x
Em seguida, deve haver sobreposições no nível 1 (indicado com um o, não inclua o oem sua saída):
x o x
xxxoxxx
x x
xxxoxxx
x o x
Sua tarefa é produzir essa representação ASCII do floco de neve de Beta.
Bônus
Haverá um bônus de 50 repetições para o programa mais curto que, quando nnegativo, produz o floco de neve (no nível n*-1) como uma imagem ou graficamente na tela.
Você pode ter programas separados para a recompensa e a tarefa principal.
Ganhando
O programa mais curto em bytes vence.
2 or more exposed sidesregra? Assumindo centro é 0,0, em seguida, 1,1, 1,-1, -1,-1, -1,1todos têm 2 lados expostos (os lados de frente para os outros 4 pontos). Não deveria ter mais de 3 lados abertos para evitar o preenchimento? Ou, alternativamente, ele só se expande se tiver 0 ou 1 vizinhos (cardeal).