Lassen Sie uns gemeinsam eine Übung machen, sollen wir? Folgen Sie einfach den Bewegungen des Stickman. Welchen Strichmännchen fragst du? Die, die wir erschaffen werden!
Erstellen Sie ein Programm, das eine Zeichenfolgeneingabe zulässt, die nur Ganzzahlen enthält, und die folgenden neun Strichmännchen mit einem Intervall dazwischen ausgibt:
@ \@/ |@_ _@| @/ \@ |@| \@\ /@/
/|\ | | | | | | | |
/ \ / \ / \ / \ /|\ /|\ / \ / \ / \
1 2 3 4 5 6 7 8 9
Dies führt zu einer Animation, der wir dann entlang irl folgen können.
Hier ist ein Beispiel für die Ausgabe, die erstellt wird, wenn die Eingabe " 123245762
" ist:
Einige Regeln:
- Dies ist mit Code-Golf gekennzeichnet , sodass der kürzeste Code in Bytes gewinnt
- Die Eingabe
string
enthält nur[1-9]
eine Länge mit einer Länge von möglicherweise 2 bis 100 Zeichen ** - Die Animation muss eine Endlosschleife sein
- Die Intervallzeit muss 750 ms betragen
- In der Eingabe sind keine doppelten benachbarten Ganzzahlen zulässig - dies schließt auch die ersten und letzten Ganzzahlen der Eingabe ein (siehe den siebten und den acht Testfall) **
** Wie es bei ungültiger Eingabe fehlschlägt, liegt ganz bei Ihnen, aber es sollte klar sein, dass es fehlschlägt . Es könnte eine Ausnahme auslösen; einfach am Start zurückkehren; Starten Sie Ihren PC neu. lösche seinen eigenen Quell- / Kompilierungscode; Hacke ins Militär und schieße eine Rakete auf den kompilierten GPS-Ort. Ihr Anruf. BEARBEITEN: Es ist nicht erlaubt, eine (korrekte / halbe) Animation einfach als fehlerhafte Eingabe anzuzeigen. Es muss klar sein, dass etwas mit der Eingabe für die fehlgeschlagenen Testfälle unten nicht stimmt. Vielen Dank an @ user81655 , der mich darauf aufmerksam gemacht hat, daher die Bearbeitung.
Unterregeln:
- Bitte posten Sie das GIF für einen der (nicht fehlgeschlagenen) Testfälle unten in Ihrer Antwort, was Sie mit dem folgenden Programm sehr einfach machen können: screentogif.codeplex.com ( Natürlich ist auch jedes andere Programm zum Erstellen von Gifs zulässig.)
- Bonuspunkte, wenn Sie die Übung tatsächlich neben der Animation ausführen, wenn sie beendet ist. ;)
Richtige Testfälle:
123245762
65
121234346565879879132418791576
Fehlgeschlagene Testfälle:
2
// Zu wenige Zeichen7282918274959292747383785189478174826894958127476192947512897571298593912374857471978269591928974518735891891723878
// Zu viele Zeichen1232405762
// Enthält ungültige Eingabe (the0
)112212
// schlägt wegen der11
und22
Gegenwart fehl1232457621
// schlägt wegen des Startens und Führens fehl1
Antworten:
Pyth, 114 Bytes
Probieren Sie es hier aus
(Keine Pause, nicht unendlich)
quelle
0
.) Unabhängig davon, danke für den Eintrag. Auf jeden Fall ist eines der unlesbarsten Code-Schnipsel für diesen Eintrag meine Vermutung. :)SpecBAS - 387 Bytes
Läuft weiter, bis Sie ESC drücken. Wenn Sie nicht richtig trainieren (falsche Eingabe - in diesem Beispiel eine 0 als einer der Schritte), führt dies zu Fettleibigkeit. Das GIF wiederholt sich, im Programm stoppt es nur an diesem Punkt.
#13
ist das SpecBAS-Äquivalent zu\n
und ermöglicht es Ihnen, Zeilenvorschub in Zeichenfolgen aufzunehmen.quelle
JavaScript (ES6), 165 Byte
quelle
JavaScript (ES6), 210 Byte
quelle
0
und Duplizieren um?How it fails in case of invalid input is completely up to you
. Ich behandle nur ungültige Eingaben, indem ich eine Animation anzeige. : P Keine der anderen vorhandenen Antworten hat dies ebenfalls überprüft, jedoch die Antwort, die das OP gerade veröffentlicht hat. Vielleicht wollte er, dass wir ungültige Eingaben verarbeiten.Mathematica, 252 Bytes
Wäre schön wenn jemand ein GIF erstellen könnte. In einem Notizbuch ausführen.
quelle
Python3, 338 Bytes
quelle
Java 8,
663636634631596355354 BytesNur für die Lols habe ich versucht, das Programm in Java zu machen.
Zugegeben, ich bin ziemlich schlecht im Golfen und Regexes, also kann es höchstwahrscheinlich (viel?) Mehr Golf gespielt werden. Trotzdem ist es hier in Java 7.Jetzt, fast zwei Jahre später, habe ich den Code in Java 8 fast halbiert. Warum habe ich jemals diese Regeln für die Validierung der Eingabe und die Anforderung eines vollständigen Programms aufgestellt ...>.> Ich hasse es mein vergangenes Ich jetzt ..
Erläuterung:
Probieren Sie es online aus. (Nach Ablauf der Zeit nach 60 Sekunden.)
Gif:
(Hinweis: Altes Gif, da es jetzt eindeutig jdk1.8 + ist.)
quelle
Java 7
auf diese Version von Java beziehen sollen, da1.7
einige verwirren können, dass es sich um eineJava 1
Revision handelt7
p(new String[]{" @ ",y,"|@_", ... }[c-49]);if(c==49){p(x);l();}else if(c==53){w();p(x);}else d();
. Ich denke auch, dass das Definierenl
undw
Verschwenden von Zeichen jetzt, da sie nur noch zweimal verwendet werden. Betrachten Sies
stattdessen seinchar[] s=a[0].toCharArray()
; Alle anderen Operationen damit sind dann viel kürzer.