Défi
Vous avez donné une carte à un ami qui ressemble un peu à ceci:
|
/
|
/
|
\
|
\
D
Une carte simple qui commence en haut et se termine en bas. Malheureusement, votre ami ne comprend pas. Pouvez-vous décoder la carte pour qu'il puisse la lire?
Contribution
L'entrée est une chaîne de caractères consistant en |, /, \, D, ^, Y, (espace) , et les nouvelles lignes.
|dit de rester dans la même colonne.\indique de se déplacer vers la colonne vers la droite et vers le bas 1./indique de se déplacer vers la colonne vers la gauche et vers le bas 1.Dmarque la destination.^(le cas échéant) indique une division du chemin.Y(le cas échéant) raconte une jonction de chemins. Traitez-le comme un|.
L'entrée sera arrangée de façon à faire une sorte de chemin:
|
|
\
|
^
/ \
/ |
D |
Il y aura toujours un espace entre deux chemins, et tous les chemins rejoindront ou atteindront la dernière ligne de l'entrée. Il n'y aura qu'un seul partage par carte. Il n'y a pas de limite à la longueur de la carte d'entrée. Il n'y aura jamais plus de deux chemins.
Production
La sortie doit être une chaîne de directions.
- « L » devrait dire à votre ami de déplacer L TEF et prendre 1 pas en avant.
- " R " devrait dire à votre ami de se déplacer vers la droite et de faire un pas en avant.
- " F " devrait dire à votre ami d'avancer d'un pas.
Pour l'exemple de carte d'entrée, la sortie serait la suivante:
F F L F R R R
Notez que votre ami commence en haut de la carte et fait face vers le bas. Donnez les directions de son point de vue. Pour une instance de "^", votre programme doit pouvoir choisir le chemin qui mène à la destination (D). Si les deux chemins se recombinent, votre programme doit choisir le chemin le plus droit (celui avec le plus de |s) à suivre. Des directives doivent être séparés par des espaces, et doivent se terminer sur D .
Exemples
Contribution
|
|
\
\
^
/ |
| |
\ |
\ \
\ \
\ /
Y
D
Production
F F L L L F F F L L R F
Puisque le chemin le plus à gauche ne contient que 1 |, nous utilisons le chemin le plus à droite qui en a 3.
Contribution
\
|
/
|
\
|
/
D
Production
L F R F L F R
Contribution
/
\
/
\
^
\ \
D \
Production
R L R L R L
Autres détails
- C'est le golf de code, donc la personne avec le code le plus court d'ici mercredi 19 août prochain, gagne.
- Commentaires constructifs bienvenus et grandement appréciés.
- Partiellement inspiré par A Map to Hidden Treasure
- N'hésitez pas à changer le titre en quelque chose de plus créatif.
- Si vous trouvez des erreurs que j'ai faites, corrigez-les.
- Et bien sûr, amusez-vous.
Je vous remercie!
Un peu tard, peut-être, mais UndefinedFunction est le gagnant du codage en JavaScript! Merci à tous ceux qui sont entrés. Aucune autre inscription ne sera acceptée.
Lpour les ^deux et deux Lpour les deux /? Et pourquoi en avez-vous ajouté deux de plus Fà la fin de l' Yexemple?
L L, ce qui, je pense, devrait l'êtreL L L. L'exemple avec aYtoujours un1à la fin et semble également avoir d'autres erreurs. J'ai lu la carte commeF F R R R F F F R R L Fsi je comprenais bien les règles.