La défenestration est l'acte de jeter quelqu'un ou quelque chose par la fenêtre.
- Wikipédia
Contribution
L'entrée comprendra deux parties:
Un plan d'étage et une personne à l'intérieur de la maison / du bâtiment.
v><^
représente une personne, pointant dans la direction indiquée par la flèche. L'entrée contiendra exactement une personne.-
et|
représentent des murs, et#
représente une fenêtre.
Cette partie de l'entrée peut être considérée comme une chaîne unique ou comme un tableau / liste / etc. de lignes. Il n'y aura jamais d'espaces de fin ou de début, et l'entrée sera toujours un rectangle.
Exemple:
-----###--- | | | ^ | -----------
Un entier ≥ 1 indiquant la distance (en caractères) parcourue par la personne.
Sortie
La sortie doit être
1
si la personne se retrouve "à l'intérieur" d'une fenêtre (c'est-à-dire après avoir avancé de la distance spécifiée dans l'entrée, la personne est au-dessus de a#
).2
si la personne a été défenestrée (entrer en contact avec a#
puis continuer plus loin).3
si la personne a heurté un mur (entrer en contact avec un-
ou|
. Une fois qu'elle a heurté le mur, la personne s'arrête et ne continue pas à travers).0
si rien de ce qui précède n'est vrai (et tout ce que la personne a fait est de voyager dans un espace vide).
Hypothèses
Tous les éléments suivants peuvent être supposés vrais:
La personne ne voyagera jamais "hors des limites" de la zone de saisie.
Après avoir été défenestrée, la personne n'entrera jamais en contact avec un autre
#
ou un-
/|
(vous n'avez donc pas à vous soucier de savoir si2
et1
ou si3
les deux sont vrais).
Cas de test
Pour le "plan d'étage" suivant:
-----
| |
|###|
| |
| ^ |
In Out
1 0
2 1
3 2
Pour ce plan d'étage:
> | # |
In Out
1 0
2-99 3 * that is, any input 2-99 outputs 3
Pour ce plan d'étage:
||####|#|#|##|<
In Out
any 3
Cas de test final:
|v|
|#|
| |
| |
| |
| |
In Out
1 1
2-5 2
Has someone been for-sparta'd?
Réponses:
JavaScript (ES6),
147146 octets1 octet enregistré grâce à @NinjaBearMonkey !
Explication
Prend un plan d'étage sous forme de chaîne et le nombre de mouvements. Renvoie un nombre.
Tester
Afficher l'extrait de code
la source