Contribution
- Une matrice binaire représentant les murs d'un cachot.
- La position du joueur dans le donjon.
- La direction laquelle le joueur est actuellement confronté (0 = Nord, 1 = Est, 2 = Sud, 3 = Ouest)
Sortie
Une représentation pseudo-3D des murs qui se trouvent dans le champ de vision du lecteur, sous forme d'art ASCII de caractères.
Vous trouverez ci-dessous plusieurs cadres de sortie possibles, ainsi que la carte et la boussole correspondantes pour vous aider à bien les comprendre (mais dessiner la carte et la boussole ne fait pas partie du défi).
spécification
Champ de vision
Le joueur a murs dans son champ de vision, étiquetés de à . Ci-dessous sont les positions des murs par rapport au joueur (en jaune), dans toutes les directions possibles.
Dessiner les murs
Les murs sont supposés être dessinés de à dans cet ordre exact, étant donné que toute partie dessinée précédemment peut être remplacée par des murs plus proches. Vous pouvez bien sûr l'implémenter différemment tant que le résultat final est le même.
La production totale est tracé avec 7 caractères distincts: " "
, "'"
, "."
, "|"
, "-"
, "_"
et ":"
.
Parce que détailler les formes des murs dans le corps de ce défi le rendrait trop long, ils sont plutôt fournis dans le lien TIO suivant:
Les caractères qui ne font pas partie d'un mur donné sont marqués d'un a "?"
dans ces diagrammes. Ils doivent être traités comme des caractères «transparents» qui ne sont pas du tout dessinés. D'autre part, tous les espaces d'un mur sont "pleins" et doivent écraser tous les autres caractères qui ont été dessinés auparavant.
Règles
A propos de l'entrée
- Vous pouvez prendre , , et dans n’importe quel format raisonnable.
- Vous pouvez utiliser des coordonnées indexées 0 ou 1.
- Vous pouvez utiliser 4 valeurs distinctes de votre choix pour les directions.
- La matrice est garantie d’être au moins .
- Vous pouvez supposer qu'il y aura toujours des murs d'enceinte sur les bords.
- Le joueur est assuré d'être situé sur une case vide.
- L'entrée est garantie pour être valide.
A propos de la sortie
- Les murs doivent être dessinés exactement comme décrit.
- Toutefois, le format de sortie est également flexible: chaîne unique, tableau de chaînes, matrice de caractères, etc.
- Les espaces de début et de fin sont acceptables tant qu'ils sont cohérents.
C'est du code-golf .
Cas de test
Tous les cas de test utilisent la matrice suivante:
[ [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ],
[ 1, 0, 1, 1, 1, 0, 0, 0, 0, 1 ],
[ 1, 0, 1, 0, 1, 0, 0, 1, 0, 1 ],
[ 1, 0, 0, 0, 0, 0, 1, 1, 0, 1 ],
[ 1, 0, 0, 1, 0, 0, 0, 1, 0, 1 ],
[ 1, 0, 0, 1, 1, 0, 1, 1, 0, 1 ],
[ 1, 1, 1, 1, 0, 0, 0, 0, 0, 1 ],
[ 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 ],
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] ]
x=3, y=3, d=0
x=6, y=4, d=3
x=4, y=4, d=1
x=1, y=5, d=2
x=7, y=7, d=3
x=6, y=6, d=1
x=8, y=1, d=2
x=7, y=6, d=1
Résultats attendus:
------------------------------ ------------------------------
x=3, y=3, d=0: x=6, y=4, d=3:
------------------------------ ------------------------------
__ __ '. .'
|'. .'| | |
| '.--------------.' | |----. |
| | | | | | '.--------. |
| | | | | | | | |
| | | | | | | | |
| | | | | | .'--------' |
| .'--------------'. | |----' |
__|.' '.|__ | |
.' '.
------------------------------ ------------------------------
x=4, y=4, d=1: x=1, y=5, d=2:
------------------------------ ------------------------------
.' __ ________________________ .'
| | |
-------. .----| | |
| '.--------.' | | | |
| | | | | | |
| | | | | | |
| .'--------'. | | | |
-------' '----| | |
| __|________________________|
'. '.
------------------------------ ------------------------------
x=7, y=7, d=3: x=6, y=6, d=1:
------------------------------ ------------------------------
'. '.
|'. |'.
| '. | '.
| | '. .- | |--.--------.--------.-
| | |: :| | | | | |
| | |: :| | | | | |
| | .' '- | |--'--------'--------'-
| .' | .'
|.' |.'
.' .'
------------------------------ ------------------------------
x=8, y=1, d=2: x=7, y=6, d=1:
------------------------------ ------------------------------
'. __ '.
|'. .'| |
| '. .' | |----.--------------.-------
| | '. .' | | | | |
| | |: :| | | | | |
| | |: :| | | | | |
| | .' '. | | | | |
| .' '. | |----'--------------'-------
|.' '.|__ |
.' .'
Défi connexe:
Ce défi de 2013 est étroitement lié. Mais il a un critère de gain différent (code-challenge), une spécification beaucoup plus souple de la sortie et nécessite des E / S interactives.