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 est0,0
alors1,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).Réponses:
CJam,
888382 octetsTestez-le ici.
Je pense que je peux économiser beaucoup sur la façon dont je détecte les coins. Mais au moins, je sais enfin à quoi ressembleront les prochaines itérations:
N = 3 :
N = 4:
En les regardant, ils semblent être beaucoup plus réguliers que ce à quoi je m'attendais, et une sorte de solution analytique qui les génère directement pourrait être beaucoup plus courte.
la source
Python 2, 269 octets
Ne place pas les formes à chaque coin, mais détermine si un personnage est dans le flocon de neige en fonction des coordonnées.
Un premier coin est généré, puis reflété autour du flocon de neige complet.
la source