Le Bouclier de Captain America

Des rebonds...

Ce défi est tiré de c0d1ngUP 2016

Captain America se trouve dans un labyrinthe construit par Hydra. Il ne peut pas se déplacer dans ce labyrinthe sous peine de déclencher des mines.

Sa seule action possible est de projeter son bouclier, quitte à le faire rebondir sur les multiples murs du labyrinthe.

Les mines sont alimentées par des cristaux, eux même alimentés par une source d'énergie souterraine.

Dans le plan ci-dessous, la position de Captain America est symbolisée par un point vert. Les cristaux sont les pavés jaunes, et la source d'énergie est le point rouge. Téléchargez ce plan (image 320x200, la source d'énergie est dans le quart supérieur gauche, et Captain America est à mi-hauteur, un peu sur la droite).

L'objectif, pour Captain America, est de projeter son bouclier de manière à ce qu'il obstrue la source d'énergie rouge, sans toutefois heurter un cristal jaune. Captain America pense y arriver en projetant son bouclier dans une des 4 directions : nord-est, nord-ouest, sud-est ou sud-ouest (en diagonale).

La difficulté est de doser la force du tir de façon à ce que le bouclier s'arrête pile sur la source rouge. Pour cela, il doit estimer la distance avant que son bouclier n'atteigne la cible.

Sur la figure suivante, on voit une partie du parcours possible du bouclier, et la manière dont il ricoche sur les murs. La longueur du parcours sur la figure suivante est 67 (attention au croisement des trajectoires pour faire ce décompte) :

Exemple de parcours

Notez que si le bouclier heurte exactement un coin ou une extrémité de mur, ça le stoppe immédiatement.

Relevez ce défi et aidez Captain America en lui indiquant la distance exacte permettant d'atteindre la source ainsi que le nombre de rebonds (ce qui lui permettra de doser la force exactement).

À titre d'exemple, si l'on était dans la situation suivante :

Exemple simple

Alors, en tirant dans la direction sud-est, la distance à trouver serait 11 (la source d'énergie rouge est atteinte après que le bouclier ait parcouru une distance de 11 cases) avec 1 rebond :

Exemple simple résolu

Dans ce cas, la solution au défi serait 11, 1

Testez votre code

Si le plan avait été le suivant :

Alors en lançant le bouclier dans la direction N-E, on atteint une extrémité en (60, 52) :

En lançant le bouclier dans la direction S-E, on atteint un cristal en (42, 72) :

En lançant le bouclier dans la direction S-O, on atteint un coin en (25, 109) :

En lançant le bouclier dans la direction N-O, on atteint la source au bout d'une distance de 307 cases, avec 27 rebonds (pour résoudre le défi il faudrait donc répondre 307, 27) :

Type de retour
deux nombres entiers
Entrées du problème
Pas de données d'entrée
Vous devez être connecté.e pour proposer une réponse au défi
Vous devez être connecté.e pour accéder aux forums.