Birçok kişi birkaç bowling oyunu oynamak için yerel bowling merkezlerine gitti ve birçok kişi skorlarını hesaplamak için mücadele etmeye devam ediyor. World Bowling, spora daha fazla insan çekmek için basitleştirilmiş bir skorlama sistemi sundu. Bu puanlama sistemi uluslararası oyunlarda kullanılmaktadır.
Puanlama sistemi şu şekilde çalışır ( Wikipedia'dan ):
“Mevcut kare skorlaması” [32] olarak tanımlanan Dünya Bowling skorlama sistemi - pimleri şu şekilde atar:
- Grev: 30 (rulo sonuçlarına bakılmaksızın)
- yedek: mevcut çerçevenin ilk rulo üzerinde 10 artı pinfall
- açık: mevcut kare için toplam pinfall
Eğer on pinli bowling ile aşina değilseniz, işte bir özet.
Bir bowling şeridinin sonunda, hedefin hepsini bowling topu ile vurmak olduğu 10 pim var. Hepsini aşağıya vurmaya çalışmak için 2 top top alırsınız, tercihen hepsini ilk topla vururlar ( çarpma olarak bilinir ). Bir vuruş yaparsanız, o zaman bu çerçeve tamamlanır ve topu ikinci kez döndürmeniz gerekmez. Grev 30'a değer.
Eğer hepsini ondan aşağı indirmezseniz, bir rulo daha alırsınız. Kalan tüm pinleri yıkarsanız, yedek olarak bilinir . Skor 10 pim + ilk ruloda yere düşen pim sayısıdır. Örneğin, 7 pimi düşürdüysem, kalan 3'ü düşürmeyi başardım, bu 17 olurdu.
İkinci yuvarlamanızdan sonra, her birini yıkmak için başarısız olursa, bu açık bir çerçeve olarak bilinir . Skor, bu çerçeve için devirilen toplam pin sayısına değiyor.
Bir oyunda 10 kare var . Geleneksel bowling skorlarına aşina iseniz, World Bowling Scoring ile 10. karede fazladan bir top alamazsınız. Geleneksel bowling skorlarında, 300'lük mükemmel bir skor elde etmek için ardışık 12 vuruş yapılırken, World Bowling atışı sadece 10 ardışık vuruş gerektirir.
Meydan okuma
Buradaki zorluk, verilen puanları bir puan tablosundan hesaplamak.
Bir skor sayfasında, bir bayan bir çizgi ile belirtilir ( - ), bir grev bir ile X ve yedek bir çizgi ile ve ( / ). Bunlar geçerli değilse, o zaman pinfall sayısı sadece bir sayı ile gösterilir (1-9). Fauller ve yarıklar da skor tablolarına kaydedilir ancak bunlar için endişelenmenize gerek yoktur.
Giriş
Her kare için puanlardan oluşan bir dize verilecek ve toplamda on kare olacak. Her kare iki değere veya bir grev olursa 1 değer kadar küçük olacaktır. Girişiniz bir işleve dize parametresi, bir dosyadan veya STDIN'den okunabilir.
Örneğin, ilk rulomda 1 pimi düşürdüysem, sonra 2'yi düşürdüysem, çerçeve "12" gibi görünürdü. Bu, 12 (on iki) anlamına gelmez, ancak toplam 3 için 1 ve 2 anlamına gelir.
Her pimi her iki ruloda (oluk toplarıyla) kaçırırsam, "-" (0 puan) gibi görünür.
Her kare bir boşlukla ayrılacaktır.
Örnek giriş
-- 9- -9 X -/ 8/ 71 15 44 X
Bu örneği yıkmak için,
- Çerçeve 1 (-) - iki rulo da kaçırıldı. 0 attı
- Kare 2 (9-) - ilk ruloda 9, ikinci ruloda kaçırıldı. Puan 9
- Çerçeve 3 (-9) - İlk önce kaçırılan, ikinci olan 9. Puan 9
- Kare 4 (X) - Grev, her birini yere indirdi. 30 puan
- Pano 5 (- /) - Yedek, ilk önce hepsini kaçırdı, 2. rulo ile hepsini yere indirdi. Puan 10 + 0 = 10
- Çerçeve 6 (8 /) - Yedek, ilk ruloda 8 pim, diğer 2'yi 2. rulo ile yere indirdi. Puan 10 + 8 = 18
- Çerçeve 7 (71) - çerçeveyi açın, ilk ruloda 7 pim, ikinci ruloda 1 pim. Puan 7 + 1 = 8
- 8,9,10 kasaları yukarıdakilerle aynı örnekleri takip etmektedir.
Çıktı
Çıktı sadece 10 karenin tümünün puanlarının toplamına sahip bir değer olacaktır. Örnek girişi kullanarak çıktı 128 olur. Çıktınız bir dize veya sayısal bir tür olabilir. Bir fonksiyon dönüş değeri olabilir veya STDOUT'a yazılabilir.
kurallar
- Girişin her zaman geçerli olacağını varsayalım. Örneğin, geçersiz bir çerçeve "/ 8", "XX", "123", "0" vb. Olabilir.
- Bölmeler veya fauller için endişelenmenize gerek yok.
- Kodunuz tam bir program veya bir dizgede geçen ve puanı döndüren bir işlev olabilir.
- Kodunuz istisnalar atmamalıdır.
- Bu kod golf, bayt sayısının en az olduğu cevabı kazanıyor.
- Kullanılan veya içe aktarılan diller, içe aktarma ifadelerini kodlarının bir parçası olarak içermeli ve bayt sayısına göre sayılmalıdır.
Test Kılıfları
"-- 9- -9 X -/ 8/ 71 15 44 X" -> 128
"-- -1 2- 12 22 5- 42 61 8- 72" -> 45
"X X X 1/ 2/ 3/ 4/ 5/ -- 9/" -> 174
"X X X X X X X X X X" -> 300
"-- -- -- -- -- -- -- -- -- --" -> 0