Bạn là thuyền trưởng của một tàu chiến. Bộ phận kỹ thuật đã cắt giảm các thiết kế trong năm nay, vì vậy con tàu bạn đang đi có hình tam giác đơn giản.
Bạn bước ra boong tàu và tận hưởng gió biển ... mặc dù không lâu. Một kẻ thù đã bắn vào bạn! - nhưng sẽ bắn trúng?
Đầu vào
Bạn có thể viết một chức năng hoặc một chương trình đầy đủ cho thử thách này.
Chương trình của bạn sẽ có 11 số nguyên, mười trong số đó được ghép nối:
Ba cặp số nguyên đầu tiên (x 1 , y 1 ), (x 2 , y 2 ), (x 3 , y 3 ) sẽ chỉ định các đỉnh của tàu của bạn. Các tam giác hình thành sẽ có diện tích khác.
Cặp số nguyên tiếp theo (e x , e y ) chỉ định vị trí của pháo của kẻ thù. Pháo của kẻ thù sẽ không bao giờ nằm trên hoặc trong ranh giới tàu của bạn. *
Cặp (a x , a y ) sau đó xác định nơi kẻ thù nhắm đến. Điều này sẽ khác với (e x , e y ).
Số nguyên dương R cuối cùng chỉ định phạm vi phát bắn của kẻ thù
* Bạn sẽ là một đội trưởng khủng khiếp nếu bạn thậm chí không nhận thấy điều đó xảy ra!
Đầu ra
Bạn phải in / trả về một truthy giá trị (ví dụ thành sự thật, 1) nếu chiếc thiết giáp hạm sẽ bị ảnh hưởng, nếu không một giá trị falsy (ví dụ sai, 0).
Một hit là gì?
Kẻ địch bắn là một đoạn thẳng có độ dài R từ (e x , e y ) theo hướng (a x , a y ). Nếu đoạn đường này chồng lên bất kỳ phần nào trong phần bên trong của tàu chiến hình tam giác của bạn, thì đoạn này được tính là một điểm nhấn. Nếu không, nó không phải là một hit.
Những cú đánh gặm cỏ dọc theo hoặc chỉ chạm tới ranh giới của tam giác không được tính là một cú đánh.
Ví dụ
0 0 0 1 1 0
1 1
0 0
2
Trúng: Kẻ thù đã bắn ngay vào trung tâm con tàu của bạn!
2 0 0 2 4 4
0 0
1 1
1
Không đánh: Tầm bắn của kẻ thù quá ngắn, nên bạn an toàn.
0 0 1 2 3 0
-4 0
0 0
8
Không đánh trúng: Kẻ thù đã sượt qua mạn tàu của bạn, vì vậy đây không được tính là một cú đánh. May mắn!
0 0 -1 3 4 -1
-3 -4
3 4
5
Không trúng: Kẻ địch chỉ dừng lại ở con tàu, nên bạn an toàn. Nếu pháo của kẻ thù có tầm bắn tốt hơn một chút, thì bạn đã bị bắn trúng! Phù!
-2 -3 -3 6 7 -2
-6 2
1 -4
7
Lượt truy cập: Mặc dù cú đánh không xuyên qua phía bên kia, đây vẫn là một cú đánh.
-3 2 2 -4 7 -3
-3 -4
-3 0
10
Không có hit: Đối với hồ sơ, đây là một bỏ lỡ gần.
Các trường hợp kiểm tra bổ sung
0 0 6 0 6 8
-6 -8
6 8
20
Không đánh: Đây là một gặm cỏ khác, nhưng ở một góc độ.
0 0 -2 -5 5 3
-3 4
0 0
6
Lượt truy cập: Cú bắn vào qua một đỉnh của con tàu.
Chấm điểm
Đây là mã golf , vì vậy mã ngắn nhất tính bằng byte sẽ thắng. Tiêu chuẩn áp dụng.
0 0 -1 3 4 -1 -3 -4 3 4 6
.