Ser atingido no joelho com flechas parece ser a lesão de escolha no momento. Como tal, proponho o seguinte desafio de golfe.
Você tem um aventureiro que se parece com isso:
O
/|\
/ | \
|
|
/ \
/ \
Dado um arquivo de texto que contém um arco (desenhado como um }
símbolo), um conjunto de paredes (desenhado como #
símbolos) e um aventureiro, escreva o menor código que calcula o ângulo e a velocidade inicial em que você deve disparar uma flecha para acertar ele no joelho.
Suponha o seguinte:
- Cada caractere no arquivo tem 0,5 x 0,5 metros.
- A flecha é disparada do centro da
}
, ou seja, um deslocamento de0.25m, 0.25m
- Gravidade é
10ms^-2
- Seta pesa
0.1kg
- Seta é um ponto, ou seja, colisões só ocorrem quando a coordenada da seta entra em um dos blocos.
- A velocidade inicial máxima é
50m/s
- O ângulo pode estar entre 0 (reto) e 180 (reto)
- Bater em qualquer parte da perna do aventureiro é considerado um golpe no joelho.
- Uma parede (
#
personagem) ocupa um bloco inteiro de 0,5mx 0,5m. - A seta pode passar sobre o "topo" do arquivo, mas não há nada para impedir que a entrada comece com um limite de
#
caracteres. - Você não pode penetrar nas paredes com flechas.
- Atingir qualquer outra parte do aventureiro não é permitido!
- Você deve exibir um erro se for impossível acertá-lo no joelho.
Exemplo de entrada:
#
} O
# /|\
/ | \
# |
# |
/ \
/ \
Sinta-se à vontade para fazer perguntas se precisar :)
#############
...