Se faire frapper au genou avec des flèches semble être la blessure de choix en ce moment. À ce titre, je propose le défi de golf suivant.
Vous avez un aventurier qui ressemble à ceci:
O
/|\
/ | \
|
|
/ \
/ \
Étant donné un fichier texte contenant un arc (dessiné comme }
symbole), un ensemble de murs (dessinés comme #
symboles) et un aventurier, écrivez le plus petit code qui calcule l'angle et la vitesse initiale à laquelle vous devez tirer une flèche pour frapper lui dans le genou.
Supposons ce qui suit:
- Chaque caractère du fichier mesure 0,5 x 0,5 mètre.
- La flèche est tirée depuis le centre de la
}
, c'est-à-dire un décalage de0.25m, 0.25m
- La gravité est
10ms^-2
- La flèche pèse
0.1kg
- La flèche est un point, c'est-à-dire que les collisions ne se produisent que lorsque les coordonnées de la flèche pénètrent dans l'un des blocs.
- La vitesse initiale maximale est
50m/s
- L'angle peut être compris entre 0 (droit vers le haut) et 180 (droit vers le bas)
- Frapper n'importe quelle partie de la jambe de l'aventurier est considéré comme un coup au genou.
- Un mur (
#
personnage) occupe un bloc entier de 0,5 mx 0,5 m. - La flèche peut se déplacer sur le "haut" du fichier, mais rien n'empêche l'entrée de commencer par un plafond de
#
caractères. - Vous ne pouvez pas pénétrer les murs avec des flèches.
- Frapper toute autre partie de l'aventurier n'est pas autorisé!
- Vous devriez afficher une erreur s'il est impossible de le frapper au genou.
Exemple d'entrée:
#
} O
# /|\
/ | \
# |
# |
/ \
/ \
N'hésitez pas à poser des questions si vous en avez besoin :)
#############
...