Schreiben Sie eine benannte Funktion oder ein benanntes Programm, das eine einzelne Ganzzahl N akzeptiert und die ersten N Balken der darunter liegenden Spirale druckt (nach STDOUT) oder (als Zeichenfolge) zurückgibt, beginnend mit dem vertikalen Balken in der Mitte und im Uhrzeigersinn nach außen spiralförmig.
_______________
/ _____________ \
/ / ___________ \ \
/ / / _________ \ \ \
/ / / / _______ \ \ \ \
/ / / / / _____ \ \ \ \ \
/ / / / / / ___ \ \ \ \ \ \
/ / / / / / / _ \ \ \ \ \ \ \
/ / / / / / / / \ \ \ \ \ \ \ \
| | | | | | | | | | | | | | | |
\ \ \ \ \ \ \___/ / / / / / / /
\ \ \ \ \ \_____/ / / / / / /
\ \ \ \ \_______/ / / / / /
\ \ \ \_________/ / / / /
\ \ \___________/ / / /
\ \_____________/ / /
\_______________/ /
Sie können davon ausgehen, dass 0 <N <= 278. Ihre Ausgabe darf kein Leerzeichen vor dem Zeichen ganz links der Spirale enthalten. Sie können optional eine einzelne nachgestellte Zeile drucken.
Bei einer Eingabe von 10 ist die korrekte Ausgabe
_
/ \
| |
\___/
Bei einer Eingabe von 2 ist die korrekte Ausgabe
/
|
Bei einer Eingabe von 20 ist die korrekte Ausgabe
___
/ _ \
/ / \ \
| | | |
\___/ /
Eine Ausgabe, die falsch wäre, weil vor dem Zeichen ganz links ein Leerzeichen steht, ist
___
/ _ \
/ / \ \
| | | |
\___/ /
Der Gewinner ist die kürzeste Einsendung in Bytes.
|
) nur das nächstliegende Zeichen sind, das das Zusammentreffen von a/
und darstellen kann\
.Antworten:
CJam - 156/147
Probieren Sie es online aus
Es funktioniert mit Eingaben von 1 bis einschließlich 378 (100 mehr als erforderlich)
Mit dem neuesten festgeschriebenen (öffentlich in hg verfügbaren), aber unveröffentlichten CJam-Code zum Zeitpunkt der Veröffentlichung dieser Herausforderung kann die Lösung auf 147 Zeichen verkürzt werden:
Erläuterung:
Das Programm konstruiert iterativ alle Spiralen als Arrays von [xy-Zeichen] beginnend mit
[0 0 '|]
, erhält die angeforderte Spirale, passt die Koordinaten so an, dass das Minimum von x und y 0 ist, und erstellt eine Matrix von Leerzeichen (mit der korrekten Anzahl von Zeilen und 50 Spalten) ) setzt dann die Zeichen aus der Spirale und verbindet die Zeilen mit Zeilenumbrüchen.quelle
Python 2,
290289Es ist wahrscheinlich wirklich schlimm, aber ich habe versucht: D
Die Ausgabe enthält nachgestellte Leerzeichen, was in der Spezifikation jedoch nicht verboten ist.
Update: 1 Byte beim Wechsel
\n
zu gespeichert;
.quelle
JavaScript (ES6) 257
288 321Bearbeitungsschritte zusammengeführt.
Bearbeiten Sie das Fummeln mit Golf-Code, um mehr Saibling zu schneiden
Bauen Sie die Ausgabe iterativ in das r-Array ein und verfolgen Sie dabei die aktuelle x- und y-Position sowie die aktuelle Richtung. Wenn die x- oder y-Position <0 ist, wird das gesamte r-Array neu angepasst.
Hauptvariablen:
Ungolfed
Test In der Firefox / FireBug-Konsole (oder JSFiddle thx @Rainbolt)
Ausgabe
quelle
Pyth,
166165Ich habe gerade meine Python-Antwort auf Pyth übersetzt, mit meinen nicht großartigen Pyth-Fähigkeiten. Das entstehende Erbrochene ist unten.
quelle