Die Herausforderung
Deine Aufgabe ist es, Adve the Adventurer zu animieren, der sich durch ein gruseliges (dh Halloween) Labyrinth bewegt. Adve ist ein •
; Er ist jedoch ein flüssiger Charakter, und es macht ihm nichts aus, von einem anderen Charakter dargestellt zu werden.
Um Adve zu animieren, drucken Sie jeden Frame aus. Ein Rahmen ist die Karte mit seiner aktuellen Position. Adve rückt in jeder Runde um ein Feld vor und niemals zurück. Er beginnt in der ersten Reihe und endet in der letzten.
Eingang
Jedes vernünftige Format wie eine Zeichenfolge mit einem Trennzeichen oder einem Zeichenfolgenarray. Sie können davon ausgehen, dass es sich bei der Eingabe um eine Karte handelt, die größer als 3 * 3 ist und nur einen möglichen Pfad enthält. Die einzigen anwesenden Zeichen sind #
und .
Ausgabe
Die Frames.
Beispiel Labyrinth ( ok ... Labyrinth )
Hier ist eine Karte ohne Adve; Der erste und letzte Frame sind diese leere Karte (diese Karte ist 9x15):
### #####
## #####
## ######
## #
####### #
# ### #
# # # #
# # ###
# #######
# ####
#### ####
#### ###
##### ###
##### ###
##### ###
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes!
Die genaue Ausgabe dazu finden Sie hier (37 Frames).
Antworten:
Perl, 84 Bytes
Vielen Dank an @Ton Hospel , der mich in die richtige Richtung geführt hat, um ungefähr 30 Bytes Golf zu spielen!
Bytecount enthält 82 Byte Code und
-0p
Flags.Beachten Sie, dass es zwei abschließende Leerzeichen und keine abschließende Newline gibt (sonst funktioniert es nicht).
Nimmt das Labyrinth als Eingabe und gibt alle erforderlichen Frames aus, damit Adve es verlässt. Beachten Sie, dass Adve
&
eher ein als ein ist•
, da letzteres nicht utf8 ist (und Perl standardmäßig utf8 nicht verwendet). Führe es mit-0pE
Flags aus:Nur für die Augen , ich habe auch diese animierte Version gemacht, die etwas länger ist, aber das Terminal zwischen jedem Ausdruck löscht und 0,15 Sekunden ruht, so dass es aussieht, als würde sich Adve tatsächlich bewegen:
quelle
$s="@+"
, ich hatte vorher nicht gemerkt , dass@+
sich das nur ändert, wenn eine erfolgreiche Regex auftritt. Undredo
stattdessenwhile
ein oder zwei Bytes gespeichert). Irgendwelche Tipps, wie man mehr Golf spielt? Ich schätze, ich muss diey///
irgendwie loswerden oders///
kürzer machen ... aber so oder so weiß ich nicht wie.y///
ist in Ordnung , da man etwas braucht Richtung anzuzeigen (aber beachten Sie , auf welcher Seite wählen bekommen) , aber die wichtigste Verbesserung kommt aus der Kombination von Substitutionens/ &/&A/
unds/& /A&/
zusammen (und nebeneinander) zu kombinieren, um zu sehen, dass dies nicht der Regex war, den ich kombinieren musste! Danke vielmals! (Und danke, dass ich herausgefunden habe, wie man Golf spielt!)JavaScript (ES6), 137
(1 Byte gespeichert dank @ETHproductions)
Weniger golfen
Prüfung
quelle