Bob the Bowman
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 |
###########################################################################################
Tugas
Tugas Anda adalah membuat gambar seni ASCII tentang Bob yang mengenai atau melewatkan target. Untuk perhitungan:
- Program Anda akan menerima
arrow_x,angle,velocity,distanceinput yang dipisahkan koma dalam urutan apa pun yang Anda inginkan. - Satu karakter ASCII sama dengan
1m. - Karakter pertama di baris terakhir memiliki koordinat
(0,0), sehingga ground (diterjemahkan sebagai#) berada diy=0. - Bob selalu berdiri di tanah,
yposisinya tidak berubah. - Tidak ada maks
y. Namun, puncak panah harus sesuai dengan gambar yang diberikan. - Semua input disediakan sebagai bilangan bulat desimal.
- Selama perhitungan, anggap panah adalah sebuah titik.
- Asal panah adalah kepala panah
>dari Bob yang menembak (lihat di atas). Jadi diberikanarrow_x, Anda harus menghitungarrow_y. Kaki kiri Bob dalam output harus cocok denganxcoord. penembakan Bob. distanceadalahxkoordinat kaki target . (mis. tengah target).- Semua pengukuran disediakan dalam meter dan derajat.
- Perhatian: Tembakan Bob tidak pernah diberikan, hanya digunakan untuk perhitungan! Lihat di bawah untuk dua keluaran-Bobs yang valid
- Menekan target berarti jalur panah melintasi salah satu dari dua dinding target paling kiri (
|) (Itu adalah (jarak-1,3) atau (jarak-1,4). Jika pada titik tertentu panah berada di dalam 2m² itu, tempatkan X bukan dinding yang ditabraknya. Targetnya selalu sama tinggi dan hanya posisi x yang bisa berubah.). Hit sudut atau panah yang jatuh dari langit ke target tidak masuk hitungan. - Earth standar g berlaku (9,81 m / s ^ 2).
distance+1adalah akhir dari lapangan, setelah itu, semuanya ketinggalan dan tidak ada panah yang harus diberikan.- Jika panah mengenai target dengan cara lain (
distance-1dll.), Tidak ada panah yang harus dirender.
Rindu
Ini adalah contoh render dari Bob yang hilang (panah masuk ke tanah pada ketinggian 34m, sudut 45 °, waktu di udara 10 detik, kecepatannya ~ 50 - tetapi ada banyak kemungkinan input yang menyebabkan output ini. Tampilkan saja program Anda menggunakan rumus biasa untuk menghitung hasil fisik "akurat".):
+-+
| |
c\ | |
/( ) v +++
L L | |
###########################################################################################
Memukul
Ini adalah contoh render penilaian Bob (panah masuk target (= melintasi jalurnya)):
+-+
>--X |
\c/ | |
( ) +++
L L |
###########################################################################################
Contoh
arrow_xadalah 7.arrow_yselalu 3.angleadalah30°atau0.523598776radian.velocityadalah13m/s.distanceadalah 20.
Jadi untuk mencapai target, panah harus melewati (19,3)atau (19,4). Segala sesuatu yang lain akan menjadi kehilangan. Dalam hal ini, panah akan masuk ke tanah (berarti yakan <1.0) di 12.9358m = ~13msetelah 1.149s.
Batas & Penilaian
- Ini adalah kode-golf , sehingga solusi terpendek menang. Tidak ada bonus.
- Program Anda (karena tidak berfungsi ) harus menerima input dalam format yang dijelaskan di atas, input tambahan tidak diizinkan.
- Anda tidak harus menangani input yang salah / tidak berguna / tidak mungkin.
- Cetak ke apa pun yang merupakan keluaran wajar terpendek untuk bahasa Anda (std, file, ...).
- Saya tidak peduli tentang tertinggal spasi.
- Tip: Lebar output adalah
distance+2. Tingginyaapex+1.
The left foot of Bob in the output has to match the x coord. of the shooting Bob.danSee below for the two valid output-Bobs
