Боб Лук
o
/( )\ This is Bob.
L L Bob wants to be an archer.
#############
.
/ \ <--- bow So he bought himself a
(c -)-> <--- arrow nice longbow and is about
( )/ <--- highly focused Bob shoot at a target.
L L
#############
___________________________________________________________________________________________
sky
Bob is a smart guy. He already knows what angle and
velocity his arrow has / will have. But only YOU know
the distance to the target, so Bob doesn't know if he
will hit or miss. This is where you have to help him.
. +-+
/ \ | |
(c -)-> | |
( )/ +++
L L |
###########################################################################################
Завдання
Ваше завдання - надати ASCII художню картину Боба, який потрапив або пропустив ціль. Для розрахунку:
- Ваша програма отримає
arrow_x,angle,velocity,distanceвведення, розділене комами, у будь-якому бажаному порядку. - Один символ ASCII дорівнює
1m. - Перший символ в останньому рядку має координати
(0,0), тому земля (надається як#) знаходиться наy=0. - Боб завжди стоїть на землі, його
yположення не змінюється. - Макс
y. Однак вершини стрілок повинні розміщуватися в межах зображеного зображення. - Весь вхід подається у вигляді десяткового цілого числа.
- Під час обчислення припустимо, що стрілка - точка.
- Походження стріли - це голівка стріли
>Боба (див. Вище). Отже, даноarrow_x, ви повинні прорахуватиarrow_y. Ліва нога Боба на виході повинна відповідатиxкоординаті. розстрілу Боба. distance-xкоордината стопи цілі . (тобто середина цілі).- Всі вимірювання подаються в метрах і градусах відповідно.
- Увага: Боб, що стріляє, ніколи не відображається, використовується лише для розрахунків! Дивіться нижче для двох дійсних вихідних бобів
- Попадання в ціль означає, що шлях стрілки перетинає одну з двох лівих стінок цілі (
|) (тобто (відстань-1,3), або (відстань-1,4). Якщо в якийсь момент стрілка знаходиться в межах цих 2м², поставте X замість стіни, в яку він потрапляє. Ціль завжди однакової висоти і може змінюватися лише її х положення.). Кутові удари або стріла, що падає з неба на ціль, не враховуються. - Застосовується стандартна земля g (9,81 м / с ^ 2).
distance+1це кінець поля, після цього все промах, і жодна стрілка не повинна бути винесена.- Якщо стрілка потрапляє в ціль будь-яким іншим способом (
distance-1тощо), жодна стрілка не повинна бути виведена.
Міс
Це приклад відображення Боба відсутнього (стрілка потрапляє в землю на 34м, кут - 45 °, час у повітрі - 10с, швидкість - 50 - але є набагато більше можливих входів, щоб викликати цей вихід. Просто покажіть, що програма використовує звичайні формули для обчислення фізично "точних" результатів.):
+-+
| |
c\ | |
/( ) v +++
L L | |
###########################################################################################
Удар
Це приклад візуалізації бобових балів (стрілка вводить ціль (= перетинає її шлях)):
+-+
>--X |
\c/ | |
( ) +++
L L |
###########################################################################################
Приклад
arrow_xє 7.arrow_yзавжди 3.angleє30°або0.523598776радіани.velocityє13m/s.distanceє 20.
Отже, щоб потрапити в ціль, стрілка повинна перетнути (19,3)або (19,4). Все інше буде промахом. У цьому випадку стрілка увійде в землю (кошти yбудуть <1.0) 12.9358m = ~13mпісля 1.149s.
Обмеження та оцінка
- Це код-гольф , тому найкоротше рішення виграє. Бонусів немає.
- Ваша програма (як і не функціонує ) повинна приймати введення у форматі, описаному вище, додаткове введення заборонено.
- Вам не доведеться обробляти неправильні / безглузді / неможливі введення.
- Роздрукуйте на будь-який найкоротший розумний вихід для вашої мови (std, файл, ...).
- Мене не хвилює пробіл пробілів.
- Порада: Ширина виводу є
distance+2. Висота -apex+1.
The left foot of Bob in the output has to match the x coord. of the shooting Bob.іSee below for the two valid output-Bobs
