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 |
###########################################################################################
Bài tập
Nhiệm vụ của bạn là đưa ra một bức tranh nghệ thuật ASCII về việc Bob đánh hoặc thiếu mục tiêu. Để tính toán:
- Chương trình của bạn sẽ nhận được
arrow_x,angle,velocity,distance
dưới dạng đầu vào được phân tách bằng dấu phẩy theo bất kỳ thứ tự nào bạn muốn. - Một ký tự ASCII bằng
1m
. - Ký tự đầu tiên trong dòng cuối cùng có tọa độ
(0,0)
, vì vậy mặt đất (được hiển thị là#
) là tạiy=0
. - Bob luôn đứng trên mặt đất,
y
vị trí của anh ta không thay đổi. - Không có tối đa
y
. Tuy nhiên, mũi tên đỉnh phải vừa trong hình ảnh được hiển thị. - Tất cả đầu vào được cung cấp dưới dạng số nguyên thập phân.
- Trong quá trình tính toán, giả sử mũi tên là một điểm.
- Nguồn gốc mũi tên là đầu mũi tên
>
của Bob bắn (xem bên trên). Vì vậyarrow_x
, bạn phải tính toánarrow_y
. Chân trái của Bob trong đầu ra phải khớp vớix
tọa độ. của vụ nổ súng Bob. distance
làx
tọa độ của chân mục tiêu . (tức là giữa mục tiêu).- Tất cả các phép đo được cung cấp theo mét và độ tương ứng.
- Chú ý: Việc chụp Bob không bao giờ được kết xuất, chỉ được sử dụng để tính toán! Xem bên dưới cho hai đầu ra hợp lệ - Bobs
- Đánh trúng mục tiêu có nghĩa là đường mũi tên đi qua một trong hai bức tường mục tiêu ngoài cùng bên trái (
|
) (Đó là (khoảng cách-1,3) hoặc (khoảng cách-1,4). Nếu tại một thời điểm nào đó, mũi tên nằm trong khoảng 2m² đó, hãy đặt X thay vì bức tường mà nó chạm vào. Mục tiêu luôn có cùng chiều cao và chỉ vị trí x của nó có thể thay đổi.). Cú đánh góc hoặc một mũi tên từ trên trời rơi xuống mục tiêu không được tính. - Tiêu chuẩn g đất được áp dụng (9,81 m / s ^ 2).
distance+1
là kết thúc của trường, sau đó, mọi thứ đều bị bỏ lỡ và không có mũi tên nào được hiển thị.- Nếu mũi tên chạm vào mục tiêu theo bất kỳ cách nào khác (
distance-1
v.v.), không có mũi tên nào được hiển thị.
Cô
Đây là một ví dụ về việc Bob bị mất tích (mũi tên rơi xuống đất ở 34m, góc là 45 °, thời gian trong không khí là 10 giây, vận tốc là ~ 50 - nhưng có nhiều đầu vào khả dĩ hơn để gây ra đầu ra này. công thức thông thường để tính kết quả "chính xác" về mặt vật lý.):
+-+
| |
c\ | |
/( ) v +++
L L | |
###########################################################################################
Đánh
Đây là một ví dụ kết xuất về tính điểm Bob (mũi tên đi vào mục tiêu (= đi qua đường dẫn của nó)):
+-+
>--X |
\c/ | |
( ) +++
L L |
###########################################################################################
Thí dụ
arrow_x
là 7.arrow_y
luôn là 3.angle
là30°
hoặc0.523598776
radian.velocity
là13m/s
.distance
là 20.
Vì vậy, để bắn trúng mục tiêu, mũi tên phải băng qua (19,3)
hoặc (19,4)
. Mọi thứ khác sẽ là một sự bỏ lỡ. Trong trường hợp này, mũi tên sẽ đi vào mặt đất (có nghĩa y
là <1.0
) 12.9358m = ~13m
sau 1.149s
.
Giới hạn & Ghi điểm
- Đây là môn đánh gôn , vì vậy giải pháp ngắn nhất sẽ thắng. Không có tiền thưởng.
- Chương trình của bạn (như không hoạt động ) phải chấp nhận đầu vào theo định dạng được mô tả ở trên, đầu vào bổ sung không được phép.
- Bạn không phải xử lý các đầu vào sai / vô nghĩa / không thể.
- In ra bất cứ thứ gì là đầu ra hợp lý ngắn nhất cho ngôn ngữ của bạn (std, file, ...).
- Tôi không quan tâm đến khoảng trắng dấu vết.
- Mẹo: Chiều rộng của đầu ra là
distance+2
. Chiều cao làapex+1
.
The left foot of Bob in the output has to match the x coord. of the shooting Bob.
vàSee below for the two valid output-Bobs