Herausforderung
Der Winter rückt immer näher und viele Orte erhalten die ersten Schneeschichten für die Saison 15/16. Warum brechen wir also nicht die Schneemaschinen aus und kodieren uns selbst etwas Schnee?
Bei einer Ganzzahl n
über STDIN wird die Schneeflocke von Beta (wie unten beschrieben) als ASCII-Darstellung auf Ebene ausgegeben n
.
Betas Schneeflocke
Die Schneeflocke startet auf Stufe 0 mit einem einzelnen x:
x
Dann fügen Sie an jeder Ecke eine der folgenden Formen hinzu:
x
xx
Sie fügen die obige Form einer rechten oberen Ecke hinzu. Drehen Sie die untere rechte Ecke um 90 ° im Uhrzeigersinn, die untere linke um 180 ° im Uhrzeigersinn und die obere linke um 270 ° im Uhrzeigersinn.
Wenn Sie das tun, erhalten Sie die folgende Form:
x x
xx xx
x
xx xx
x x
Beachten Sie die Ausrichtung der Formen. Wenn wir weitermachen, fügen wir unter Verwendung der oben beschriebenen Ausrichtungsregeln mehr Formen zu jeder Ecke hinzu, um Ebene 2 zu erhalten:
x x x
xxxxxxx
xx x x xx
xxx xxx
xx x xx
xxx xxx
xx x x xx
xxxxxxx
x x x
Beachten Sie, dass die Formen nur zu x
s mit zwei oder mehr exponierten Seiten hinzugefügt werden (die oben als Ecke bezeichnet werden).
Die L-Formen können und werden sich bei Werten n
über 1 überlappen . Zum Beispiel:
Wenn Level 0 ist:
x x
Dann muss es Überlappungen in Ebene 1 geben (angezeigt mit o
, nicht o
in Ihre Ausgabe aufnehmen):
x o x
xxxoxxx
x x
xxxoxxx
x o x
Ihre Aufgabe ist es, diese ASCII-Darstellung von Betas Schneeflocke auszugeben.
Bonus
Für das kürzeste Programm wird ein Bonus von 50 Wiederholungen gewährt n
, der die Schneeflocke (auf Stufe n*-1
) als Bild oder grafisch auf dem Bildschirm ausgibt , wenn sie negativ ist .
Möglicherweise haben Sie ein separates Programm für das Kopfgeld und die Hauptaufgabe.
Gewinnen
Das kürzeste Programm in Bytes gewinnt.
2 or more exposed sides
Regel klarstellen ? Unter der Annahme , Zentrum wird0,0
dann1,1
,1,-1
,-1,-1
,-1,1
haben alle 2 freiliegenden Seiten (die Seiten gegenüber den anderen Punkten 4 gegenüberliegt). Sollten es nicht mehr als 3 offene Seiten sein, um ein Füllen zu vermeiden? Oder alternativ erweitert es sich nur, wenn es 0 oder 1 Nachbarn hat (Kardinal).Antworten:
CJam,
888382 BytesTeste es hier.
Ich denke, ich kann viel sparen, wenn ich erkenne, wo die Ecken sind. Aber zumindest weiß ich endlich, wie die nächsten Iterationen aussehen:
N = 3 :
N = 4:
Betrachtet man diese, so scheinen sie viel regelmäßiger zu sein als ich erwartet hatte, und eine Art analytischer Lösung, die sie direkt generiert, könnte viel kürzer sein.
quelle
Python 2, 269 Bytes
Platziert die Formen nicht an jeder Ecke, sondern bestimmt anhand der Koordinaten, ob sich ein Zeichen in der Schneeflocke befindet.
Zuerst wird eine Ecke generiert und dann bis zur vollen Schneeflocke gespiegelt.
quelle