Sur les conseils de Mme Pac-Man qui craint qu'il ne fasse de l'embonpoint, Pac-Man a décidé de suivre son apport quotidien en Pac-Dot. Aidez-le à compter le nombre de Pac-Dots sur un chemin donné dans le labyrinthe!
Le labyrinthe
Pour vous aider à créer votre propre encodage du labyrinthe, vous pouvez obtenir des données brutes ici .
Le voyage de Pac-Man
Dans le cadre de ce défi, les règles suivantes s'appliquent:
- Tout d'abord, la bonne nouvelle: les fantômes ne sont pas là.
- Pac-Man commence toujours sa course à la position indiquée sur l'image ci-dessus, en direction de l'Est. Il n'y a pas de Pac-Dot à la position de départ.
- Tant qu'il suit un chemin droit, il continue de progresser vers les cases suivantes.
- Lorsqu'il rencontre un virage à 90 ° sans aucun autre chemin disponible (carrés orange sur la carte), il prend automatiquement et systématiquement le virage.
- Lorsqu'il rencontre une jonction où plusieurs chemins sont disponibles (carrés verts sur la carte), il peut soit continuer dans la même direction - le cas échéant - soit choisir une autre direction (y compris faire demi-tour).
- Lorsque Pac-Man passe par l'une des sorties du milieu gauche ou du milieu droit du labyrinthe, il réapparaît immédiatement du côté opposé.
- Pac-Man mange tous les Pac-Dots sur le chemin qu'il suit. Une fois qu'un Pac-Dot a été mangé, il est retiré du labyrinthe.
Le défi
Contribution
Vous recevrez une chaîne décrivant le comportement de Pac-Man sur les jonctions qu'il va atteindre. Cette chaîne sera composée des caractères suivants:
L
: tourner à 90 ° vers la gaucheR
: tourner à 90 ° vers la droiteF
: aller de l'avant (pas de changement de direction)B
: reculer (faire demi-tour)
Lorsque tous les personnages ont été traités, Pac-Man s'arrête à la prochaine jonction qu'il rencontre.
Sortie
Vous devez imprimer ou imprimer le nombre de Pac-Dots consommés le long du chemin d'entrée.
Règles
- Vous pouvez écrire un programme complet ou une fonction.
- Vous pouvez prendre les entrées en majuscules ou en minuscules, sous la forme d'une chaîne ou d'un tableau de caractères. Vous pouvez également utiliser d'autres caractères (mais un seul caractère par direction) ou des entiers dans
[0 .. 9]
. Si vous le faites, veuillez le préciser clairement dans votre réponse. - Vous pouvez supposer que l'entrée est toujours valide. (Le jsFiddle ci-dessous détectera les erreurs, mais vous n'êtes pas censé le faire.)
- Il s'agit de code-golf, donc le code le plus court en octets l'emporte.
- Les failles standard sont interdites.
Allusion
Il peut ne pas être nécessaire ni optimal pour stocker la forme exacte du labyrinthe.
Cas de test et démo
Les cas de test suivants - ou toute autre entrée - peuvent être testés dans ce jsFiddle .
1. Input : ""
Output : 1
Comment: Pac-Man just advances to the first junction, eats the Pac-Dot on it and stops.
2. Input : "L"
Output : 7
3. Input : "FFR"
Output : 13
4. Input : "LFLR"
Output : 17
Comment: Pac-Man will exit on the middle right side and re-appear on the left side.
5. Input : "BBBB"
Output : 2
6. Input : "BRRFFFL"
Output : 15
7. Input : "LFFRLFFFFRF"
Output : 50
8. Input : "BRFRLRFRLFR"
Output : 54
Comment: Pac-Man will exit on the middle left side and re-appear on the right side.
9. Input : "FFLRLFFLLLLFFBFLFLRRRLRRFRFLRLFFFLFLLLLFRRFBRLLLFBLFFLBFRLLR"
Output : 244
Comment: All cleared!