Banyak orang telah pergi ke pusat bowling lokal mereka untuk memainkan beberapa permainan bowling, dan banyak orang terus berjuang untuk menghitung skor mereka. World Bowling telah memperkenalkan sistem penilaian yang disederhanakan untuk menarik lebih banyak orang ke olahraga. Sistem penilaian ini digunakan dalam permainan internasional.
Sistem penilaian bekerja seperti ini (dari Wikipedia ):
Sistem penilaian Bowling Dunia — digambarkan sebagai "penilaian bingkai saat ini" [32] —menuju pin sebagai berikut:
- strike: 30 (terlepas dari hasil rolls berikutnya)
- cadangan: 10 plus pinfall pada gulungan pertama dari frame saat ini
- open: pinfall total untuk frame saat ini
Jika Anda tidak terbiasa dengan bowling sepuluh pin, inilah rekapnya.
Ada 10 pin di ujung jalur bowling di mana tujuannya adalah untuk menjatuhkan mereka semua dengan bola bowling. Anda mendapatkan 2 gulungan bola untuk menjatuhkan mereka semua, lebih baik menjatuhkan mereka dengan gulungan pertama (dikenal sebagai pukulan ). Jika Anda mendapatkan pukulan, maka frame itu selesai dan Anda tidak perlu melempar bola untuk kedua kalinya. Pemogokan bernilai 30.
Jika Anda tidak meruntuhkan kesepuluh, Anda mendapatkan satu gulungan lagi. Jika Anda merobohkan semua pin yang tersisa, itu dikenal sebagai cadangan . Skor ini bernilai 10 pin + jumlah pin yang dirobohkan pada gulungan pertama. Misalnya, jika saya merobohkan 7 pin, maka berhasil merobohkan 3 pin yang tersisa, itu akan bernilai 17.
Jika setelah roll kedua Anda gagal merobohkan semua sepuluh, itu dikenal sebagai bingkai terbuka . Skor ini sebanding dengan jumlah total pin yang dirobohkan untuk frame itu.
Ada 10 frame dalam game . Jika Anda terbiasa dengan skor bowling tradisional, Anda tidak mendapatkan rol tambahan di frame 10 dengan World Bowling Scoring. Dalam penilaian bowling tradisional, dibutuhkan 12 serangan berurutan untuk mendapatkan skor sempurna 300, sedangkan skor World Bowling hanya membutuhkan 10 serangan berurutan.
Tantangan
Tantangan Anda adalah menghitung nilai yang diberikan nilai dari lembar skor.
Pada lembar skor, kehilangan ditandai dengan tanda hubung ( - ), serangan dengan X , dan cadangan dengan garis miring ( / ). Jika ini tidak berlaku, maka jumlah pinfall hanya ditunjukkan dengan angka (1-9). Pelanggaran dan pemecahan juga dicatat pada lembar skor tetapi Anda tidak perlu khawatir tentang ini.
Memasukkan
Anda akan diberi string yang terdiri dari skor untuk setiap frame, dan akan memiliki total sepuluh frame. Setiap frame akan memiliki hingga dua nilai, atau nilai minimal 1 jika ada serangan. Input Anda dapat berupa parameter string ke suatu fungsi, membaca dari file, atau dari STDIN.
Misalnya, jika saya merobohkan 1 pin pada gulungan pertama saya, lalu menjatuhkan 2, bingkai akan terlihat seperti "12". Ini tidak berarti 12 (dua belas), tetapi berarti 1 dan 2, dengan total 3.
Jika saya melewatkan setiap pin dengan kedua gulungan (talang bola), akan terlihat seperti ini "-" (skor 0).
Setiap frame akan dipisahkan oleh spasi.
Masukan sampel
-- 9- -9 X -/ 8/ 71 15 44 X
Untuk menjabarkan contoh ini,
- Frame 1 (-) - kedua gulungan tidak terjawab. mencetak 0
- Bingkai 2 (9-) - merobohkan 9 gulungan pertama, terlewatkan pada gulungan kedua. Skor 9
- Frame 3 (-9) - Melewatkan semua pada yang pertama, mendapat 9 pada yang kedua. Skor 9
- Frame 4 (X) - Strike, merobohkan semua sepuluh. Skor 30
- Frame 5 (- /) - Spare, ketinggalan semua pada yang pertama, merobohkan semua dengan gulungan ke-2. Nilai 10 + 0 = 10
- Frame 6 (8 /) - Spare, 8 pin pada roll pertama, menjatuhkan 2 lainnya dengan roll kedua. Nilai 10 + 8 = 18
- Frame 7 (71) - bingkai terbuka, 7 pin pada gulungan pertama, 1 pin pada gulungan kedua. Skor 7 + 1 = 8
- Bingkai 8,9,10 ikuti contoh yang sama seperti di atas.
Keluaran
Output hanya akan menjadi nilai yang memiliki jumlah skor dari semua 10 frame. Menggunakan input sampel, output akan menjadi 128. Output Anda mungkin berupa string atau tipe numerik. Ini bisa berupa nilai pengembalian fungsi, atau ditulis ke STDOUT.
Aturan
- Asumsikan bahwa input akan selalu valid. Misalnya, bingkai yang tidak valid adalah "/ 8", "XX", "123", "0", dll.
- Anda tidak perlu khawatir tentang perpecahan atau pelanggaran.
- Kode Anda dapat berupa program lengkap atau fungsi yang mengambil string dan mengembalikan skor.
- Kode Anda tidak boleh membuang pengecualian.
- Ini adalah kode golf, jawabannya dengan jumlah byte terkecil yang menang.
- Bahasa yang menggunakan termasuk atau impor harus menyertakan pernyataan impor sebagai bagian dari kode mereka dan dihitung terhadap jumlah byte.
Uji Kasus
"-- 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