Giriş
Bir dartın dart tahtasına düştüğü yerin koordinatları verildiğinde, dartın puanını döndüren bir program veya işlev yazın. Dart koordinatları x,y
dart tahtası ortasından ölçülen, milimetre hassasiyetinde iki tamsayı olarak verilmiştir .
Bir dart nasıl yapılır
Dart, dairesel bir tahtaya dart atarak oynanan bir oyundur. Dart tahtası 20 eşit büyüklükte "takozlar" ayrılmıştır. Tepeden başlayıp saat yönünde ilerleyen bölümler 20,1,18,4,13,6,10,15,2,17,3,19,7,16,8,11,14,9,12 5. Dartınız, takozların herhangi birinin siyah veya beyaz kısımlarına girerse, o kamanın dışında belirtilen değeri puanlarsınız.
.
Ancak, dartınız, dart tahtasının dış yeşil / kırmızı halkasına girerse, çarptığınız kamanın dışında belirtilen noktaları iki katına çıkarırsınız. Benzer şekilde, iç yeşil / kırmızı halkayı (iki beyaz / siyah bölüm arasındaki biri) vurarak kama dışının üzerinde gösterilen sayıyı üçe katlarsınız. Dartınız en içteki daireye (kırmızı boğa gözü) çarpıyorsa, bunun yerine 50 puan alırsınız ve son olarak dartınız ikinci en içteki daireye vurursa (boğa gözünün etrafındaki yeşil halka), 25 puan alırsınız.
Dart tahtasının ortasından ölçülen halkaların boyutları aşağıdaki gibidir:
Bullseye (50): [0mm-6mm)
25: [6mm-16mm)
Inner Single: [16mm-99mm)
Triple: [99mm-107mm)
Outer Single: [107mm-162mm)
Double: [162mm-170mm)
Miss (0): 170mm+
Not 1: Sunulan resimler yalnızca gösterim amaçlıdır ve ölçeklenmez.
Not 2: Verilen ölçümler yaklaşık değerlerdir ve gerçek bir dart tahtası için doğru olmayabilir.
Not 3: Verilen tüm ölçümler [inclusive-exclusive)
. Bu zorluğun amaçları doğrultusunda, telleri vurarak ve zıplayan dart konusunda endişelenmeyeceğiz. Dart, radyal çizgilerden biriyle "telin üzerine" inerse, kravatın saat yönünde mi yoksa saatin tersi yönünde mi kırılacağına karar vermek cevaplayıcıya aittir. Bağlantı kopma yönü tutarlı ve belirtilmiş olmalıdır.
Not 4: Dart tahtası standart bir şekilde asılır ve 20 bölümün ortası doğrudan bullseye, 3 bölümü de doğrudan bullseye bağlıdır.
Giriş
x,y
Dart tahtası ortasına göre milin metre cinsinden ölçülen dartın koordinatlarını temsil eden iki tam sayı .
Çıktı
Verilen koordinatlarda inen bir darta verilecek puan sayısı için tek bir tamsayı.
Numune
0,0 -> 50
2,101 -> 60
-163,-1 -> 22
6,18 -> 1
-6,18 -> 5
45,-169 -> 0
22, 22 -> 4 (if tie-broken clock-wise)
18(if tie-broken counter-clockwise)
-150,0 -> 11
-150,-1 -> 11
puanlama
kod golfü . Kaynak kodunuzdaki en az bayt kazanır.
-150,-1
ve -150,0
bunların her ikisi de vermeli 11
ve bazı uygulamalarda bir kenar söz konusu olabilir, bu kutupsal koordinatlarda teta yakınsak için -pi ve teta = + pi arasındaki geçiş olduğu gibi. (İlk cevabım ikinci cevapta başarısız oldu.)