Anda adalah kapten kapal perang. Departemen teknik telah mengambil jalan pintas dengan desain tahun ini, jadi kapal yang Anda tumpangi berbentuk segitiga sederhana.
Anda berjalan ke geladak dan menikmati angin laut ... meskipun tidak lama. Musuh telah menembaki Anda! - tetapi apakah tembakannya akan mengenai?
Memasukkan
Anda dapat menulis fungsi atau program lengkap untuk tantangan ini.
Program Anda akan mencakup 11 bilangan bulat, sepuluh di antaranya dipasangkan:
Tiga pasang bilangan bulat pertama (x 1 , y 1 ), (x 2 , y 2 ), (x 3 , y 3 ) akan menentukan simpul kapal Anda. Segitiga yang terbentuk akan memiliki area bukan nol.
Sepasang bilangan bulat berikutnya (e x , e y ) menentukan lokasi meriam musuh. Meriam musuh tidak akan pernah berbaring, atau dalam batas kapal Anda. *
Pasangan (a x , a y ) setelah itu menentukan ke mana tujuan musuh. Ini akan berbeda dari (e x , e y ).
Integer positif akhir R menentukan kisaran tembakan musuh
* Anda akan menjadi kapten yang mengerikan jika Anda bahkan tidak melihat itu terjadi!
Keluaran
Anda harus mencetak / mengembalikan truthy nilai (misalnya benar, 1) jika kapal perang akan terkena, jika nilai falsy (misalnya palsu, 0).
Apa itu hit?
Tembakan musuh adalah segmen garis lurus dengan panjang R dari (e x , e y ) ke arah (a x , a y ). Jika segmen garis ini tumpang tindih dengan bagian mana pun dari interior kapal perang segitiga Anda, maka ini dianggap sebagai hit. Kalau tidak, itu bukan hit.
Tembakan yang merumput di sepanjang atau hanya mencapai hingga batas segitiga tidak dihitung sebagai hit.
Contohnya
0 0 0 1 1 0
1 1
0 0
2

Hit: Musuh telah menembak tepat melalui pusat kapalku!
2 0 0 2 4 4
0 0
1 1
1

Tidak ada pukulan: Rentang musuh terlalu pendek, jadi Anda aman.
0 0 1 2 3 0
-4 0
0 0
8

Tanpa pukulan: Musuh telah menyerempet sisi kapal Anda, jadi ini tidak dihitung sebagai pukulan. Beruntung!
0 0 -1 3 4 -1
-3 -4
3 4
5

Tanpa pukulan: Tembakan musuh hanya berhenti di dekat kapal, jadi Anda aman. Jika meriam musuh memiliki jangkauan yang sedikit lebih baik, maka Anda akan terkena! Fiuh!
-2 -3 -3 6 7 -2
-6 2
1 -4
7

Hit: Meskipun tembakan tidak menembus ke sisi lain, ini masih menjadi hit.
-3 2 2 -4 7 -3
-3 -4
-3 0
10

Tanpa hit: Sebagai catatan, ini adalah miss close lainnya.
Kasus uji tambahan
0 0 6 0 6 8
-6 -8
6 8
20

Tidak ada pukulan: Ini adalah satu lagi goresan, tetapi pada satu sudut.
0 0 -2 -5 5 3
-3 4
0 0
6

Hit: Tembakan masuk melalui simpul kapal.
Mencetak gol
Ini adalah kode-golf , jadi kode terpendek dalam byte menang. Celah standar berlaku.
0 0 -1 3 4 -1 -3 -4 3 4 6.