Ser golpeado en la rodilla con flechas parece ser la lesión de elección en este momento. Como tal, propongo el siguiente desafío de golf.
Tienes un aventurero que se ve así:
O
/|\
/ | \
|
|
/ \
/ \
Dado un archivo de texto que contiene un arco (dibujado como }
símbolo), un conjunto de paredes (dibujado como #
símbolos) y un aventurero, escriba el código más pequeño que calcule el ángulo y la velocidad inicial a la que debe disparar una flecha para golpear él en la rodilla.
Suponga lo siguiente:
- Cada caracter en el archivo es 0.5 x 0.5 metros.
- La flecha se dispara desde el centro del
}
, es decir, un desplazamiento de0.25m, 0.25m
- La gravedad es
10ms^-2
- La flecha pesa
0.1kg
- La flecha es un punto, es decir, las colisiones solo ocurren cuando la coordenada de la flecha entra en uno de los bloques.
- La velocidad inicial máxima es
50m/s
- El ángulo puede estar entre 0 (hacia arriba) y 180 (hacia abajo)
- Golpear cualquier parte de la pierna del aventurero se considera un golpe en la rodilla.
- Un muro (
#
personaje) ocupa un bloque completo de 0.5mx 0.5m. - La flecha puede viajar sobre la "parte superior" del archivo, pero no hay nada que impida que la entrada comience con un límite máximo de
#
caracteres. - No puedes penetrar paredes con flechas.
- ¡Golpear cualquier otra parte del aventurero no está permitido!
- Debería mostrar un error si es imposible golpearlo en la rodilla.
Entrada de ejemplo:
#
} O
# /|\
/ | \
# |
# |
/ \
/ \
No dude en hacer preguntas si necesita :)
#############
...