Le défi
Votre tâche est d'animer Adve l'Aventurier se déplaçant à travers un labyrinthe effrayant (c'est-à-dire Halloween). Adve est un •
; son caractère est fluide, cependant, cela ne le dérange pas d'être représenté par un personnage différent.
Pour animer Adve, vous imprimez chaque image; un cadre est la carte avec son emplacement actuel. Adve avance d'un espace à chaque tour et ne revient jamais en arrière. Il commence au premier rang et se termine au dernier.
Contribution
Tout format raisonnable comme une chaîne avec un délimiteur ou un tableau de chaînes. Vous pouvez supposer que l'entrée sera une carte supérieure à 3 * 3, contenant un seul chemin possible. Les seuls personnages présents seront #
et .
Production
Les cadres.
Exemple de labyrinthe ( ok ... labyrinthe )
Voici une carte sans Adve; les première et dernière images sont cette carte vide (cette carte est 9x15):
### #####
## #####
## ######
## #
####### #
# ### #
# # # #
# # ###
# #######
# ####
#### ####
#### ###
##### ###
##### ###
##### ###
C'est le code-golf , donc le code le plus court en octets gagne!
La sortie exacte pour cela peut être trouvée ici (37 images).
Réponses:
Perl, 84 octets
Merci @Ton Hospel de m'avoir guidé dans la bonne direction pour jouer au golf environ 30 octets!
Bytecount comprend 82 octets de code et d'
-0p
indicateurs.Notez qu'il y a deux espaces finaux, et pas de nouvelle ligne finale (cela ne fonctionnera pas autrement).
Prend le labyrinthe comme entrée et génère toutes les images nécessaires pour qu'Adve en sorte. Notez qu'Adve est un
&
plutôt qu'un•
, car ce dernier n'est pas utf8 (et perl n'utilise pas utf8 par défaut). Exécutez-le avec des-0pE
drapeaux:Juste pour les yeux , j'ai également fait cette version animée, qui est un peu plus longue, mais effacera le terminal entre chaque impression et dormira 0,15 sec, il semblera donc qu'Adve se déplace réellement:
la source
$s="@+"
, je n'avais pas réalisé plus tôt que cela@+
ne change que si une expression régulière réussie se produit. Etredo
au lieu d'while
enregistrer un ou deux octets). Une indication sur la façon de jouer au golf plus? Je suppose que je dois m'en débarrasser d'uney///
manière ou d'une autre,s///
mais je ne sais pas comment.y///
bien puisque vous avez besoin de quelque chose pour indiquer la direction (mais notez que vous pouvez choisir de quel côté) Mais la principale amélioration viendra de la combinaison des substitutionss/ &/&A/
ets/& /A&/
ensemble (et le prochain ensemble) pour voir que ce n'étaient pas les regex que je devais combiner! Merci beaucoup! (Et merci de m'avoir permis de découvrir comment jouer au golf!)JavaScript (ES6), 137
(1 octet enregistré thx @ETHproductions)
Moins golfé
Tester
la source