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,distancedướ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,
yvị 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ớixtọa độ. của vụ nổ súng Bob. distancelàxtọ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+1là 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-1v.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_xlà 7.arrow_yluôn là 3.anglelà30°hoặc0.523598776radian.velocitylà13m/s.distancelà 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 ylà <1.0) 12.9358m = ~13msau 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
