Получение удара в колено стрелами, кажется, травма выбора прямо сейчас. В связи с этим я предлагаю следующий вызов для гольфа.
У вас есть искатель приключений, который выглядит так:
O
/|\
/ | \
|
|
/ \
/ \
Учитывая текстовый файл, который содержит один лук (нарисованный как }
символ), набор стен (нарисованный как #
символы) и один искатель приключений, напишите наименьший код, который вычисляет угол и начальную скорость, с которой вы должны стрелять, чтобы поразить он в колене.
Предположим следующее:
- Каждый символ в файле 0,5 х 0,5 метра.
- Стрелка стреляет из центра
}
, то есть смещение0.25m, 0.25m
- Гравитация
10ms^-2
- Стрелка весит
0.1kg
- Стрелка - это точка, т.е. столкновения происходят только тогда, когда координата стрелки входит в один из блоков.
- Максимальная начальная скорость
50m/s
- Угол может быть между 0 (прямо вверх) и 180 (прямо вниз)
- Удар по любой части ноги авантюриста считается ударом по колено.
- Стена (
#
персонаж) занимает целый блок размером 0,5 х 0,5 м. - Стрелка может перемещаться над «вершиной» файла, но ничто не мешает вводу начинаться с верхнего ряда
#
символов. - Вы не можете проникнуть сквозь стены со стрелами.
- Попадание любой другой части искателя приключений не допускается!
- Вы должны показать ошибку, если ударить его в колено невозможно.
Пример ввода:
#
} O
# /|\
/ | \
# |
# |
/ \
/ \
Не стесняйтесь задавать вопросы, если вам нужно :)
#############
...