Défi
L'hiver approche à grands pas et de nombreux endroits reçoivent les premières couches de neige pour la saison 15/16, alors pourquoi ne pas sortir les machines à neige et nous coder de la neige?
Étant donné un entier n
via STDIN, affichez un flocon de neige de la version Beta de la représentation ASCII (comme décrit ci-dessous) au niveau n
.
Flocon de neige de Beta
Le flocon de neige commence au niveau 0 avec un seul x:
x
Ensuite, à chaque coin, vous ajoutez l'une de ces formes:
x
xx
Vous ajoutez la forme ci-dessus dans un coin supérieur droit. Pour un coin inférieur droit, faites-le pivoter de 90 ° dans le sens horaire, pour le coin inférieur gauche, 180 ° dans le sens horaire et pour le coin supérieur gauche, 270 ° dans le sens horaire.
Si vous faites cela, vous obtenez la forme suivante:
x x
xx xx
x
xx xx
x x
Prenez note de l'orientation des formes. En continuant, nous ajoutons plus de formes à chaque coin, en utilisant les règles d'orientation décrites ci-dessus, au diagramme pour obtenir le niveau 2:
x x x
xxxxxxx
xx x x xx
xxx xxx
xx x xx
xxx xxx
xx x x xx
xxxxxxx
x x x
Notez que les formes ne sont ajoutées qu'à des x
s avec deux ou plusieurs côtés exposés (ce qui est appelé un coin au-dessus).
Les formes en L peuvent se chevaucher et se chevaucheront pour des valeurs n
supérieures à 1. Par exemple:
Si le niveau 0 est:
x x
Ensuite, il doit y avoir des chevauchements au niveau 1 (indiqué par un o
, n'incluez pas le o
dans votre sortie):
x o x
xxxoxxx
x x
xxxoxxx
x o x
Votre tâche consiste à générer cette représentation ASCII du flocon de neige de Beta.
Prime
Il y aura un bonus de 50 répétitions pour le programme le plus court qui, lorsqu'il n
est négatif, sort le flocon de neige (au niveau n*-1
) sous forme d'image ou graphiquement à l'écran.
Vous pouvez avoir un programme séparé pour la prime et la tâche principale.
Gagnant
Le programme le plus court en octets gagne.
2 or more exposed sides
règle? En supposant que le centre est 0,0
alors 1,1
, 1,-1
, -1,-1
, -1,1
ont tous les 2 faces exposées (les côtés faisant face vers les autres 4 points). Ne devrait-il pas y avoir 3+ côtés ouverts pour éviter le remplissage? Ou alternativement, il ne se développe que s'il a 0 ou 1 voisins (cardinal).