Bir savaş gemisinin kaptanısın. Mühendislik departmanı bu yıl tasarımlarla köşeleri kesiyor, bu yüzden bulunduğunuz gemi basit bir üçgen şeklini alıyor.
Güvertede yürümek ve deniz meltemi tadını çıkarın ... ama uzun süre olmasa da. Bir düşman sana ateş etti! - ama atış vurulacak mı?
Giriş
Bu zorluk için bir işlev veya tam bir program yazabilirsiniz.
Programınız on tanesi eşleştirilmiş 11 tamsayı alacak:
İlk üç çift tam sayı (x 1 , y 1 ), (x 2 , y 2 ), (x 3 , y 3 ) geminizin köşe noktalarını belirtir. Oluşan üçgen sıfır olmayan bir alana sahip olacaktır.
Bir sonraki tamsayı çifti (e x , e y ) düşmanın topunun yerini belirtir. Düşman topu asla geminizin üzerinde veya geminizin sınırları içinde uzanmayacaktır. *
Bundan sonraki çift (a x , a y ) düşmanın nereye nişan aldığını belirtir. Bu (e x , e y ) ' den farklı olacaktır .
Son pozitif tamsayı R, düşmanın atış aralığını belirtir
* Bunun olduğunu fark etmemiş olsaydın korkunç bir kaptan olurdun!
Çıktı
Eğer zırhlıya çarpılacaksa , doğruluk değeri (örn. Doğru, 1) yazmalısınız / iade etmelisiniz , aksi takdirde sahte bir değer (örn. Yanlış, 0).
İsabet nedir?
Düşman atış, (e x , e y ) 'den (a x , a y ) yönünde R uzunluğunda düz bir çizgi segmentidir . Bu çizgi segmenti, üçgen savaş geminizin iç , bu bir isabet olarak sayılır. Aksi takdirde isabet değildir.
Üçgenin sınırına kadar otlayan veya sadece sınıra ulaşan atışlar isabet sayılmaz.
Örnekler
0 0 0 1 1 0
1 1
0 0
2

Vuruş: Düşman geminizin ortasından ateş etti!
2 0 0 2 4 4
0 0
1 1
1

İsabet yok: Düşmanın menzili çok kısa, güvendesiniz.
0 0 1 2 3 0
-4 0
0 0
8

İsabet yok: Düşman geminizin yanını sıyırdı, bu yüzden bu bir isabet sayılmaz. Şanslı!
0 0 -1 3 4 -1
-3 -4
3 4
5

İsabet yok: Düşman vuruşu geminin hemen önünde durur, böylece güvendesiniz. Düşmanın topu biraz daha iyi menzile sahip olsaydı, o zaman vurulurdunuz! Uf!
-2 -3 -3 6 7 -2
-6 2
1 -4
7

İsabet: Atış diğer tarafa nüfuz etmese de, bu hala bir isabet.
-3 2 2 -4 7 -3
-3 -4
-3 0
10

İsabet yok: Kayıt için bu başka bir yakın özledim.
Ek test senaryoları
0 0 6 0 6 8
-6 -8
6 8
20

İsabet yok: Bu bir başka otlatmadır, ancak bir açıyla.
0 0 -2 -5 5 3
-3 4
0 0
6

Hit: Atış geminin bir tepe noktası üzerinden girildi.
puanlama
Bu kod golf , bu yüzden bayttaki en kısa kod kazanır. Standart boşluklar geçerlidir.
0 0 -1 3 4 -1 -3 -4 3 4 6.