कई लोग गेंदबाजी के कुछ खेल खेलने के लिए अपने स्थानीय गेंदबाजी केंद्र में गए हैं, और कई लोग अपने स्कोर की गणना करने के लिए संघर्ष करना जारी रखते हैं। विश्व बॉलिंग ने अधिक लोगों को खेल के प्रति आकर्षित करने के लिए एक सरल स्कोरिंग प्रणाली शुरू की है। यह स्कोरिंग प्रणाली अंतरराष्ट्रीय खेलों में उपयोग की जाती है।
स्कोरिंग सिस्टम इस तरह काम करता है ( विकिपीडिया से ):
विश्व बॉलिंग स्कोरिंग प्रणाली को "वर्तमान फ्रेम स्कोरिंग" के रूप में वर्णित किया गया है:
- हड़ताल: 30 (भले ही रोल के परिणामों की परवाह किए बिना)
- स्पेयर: वर्तमान फ्रेम के पहले रोल पर 10 प्लस पिनफॉल
- खुला: वर्तमान फ्रेम के लिए कुल पिनफॉल
यदि आप दस-पिन गेंदबाजी से परिचित नहीं हैं, तो यहां एक रिकैप है।
एक बॉलिंग लेन के अंत में 10 पिन होते हैं, जहाँ लक्ष्य उन सभी को बॉलिंग बॉल से नीचे गिराना होता है। आपको उन सभी को नीचे गिराने की कोशिश करने के लिए एक गेंद के 2 रोल मिलते हैं, अधिमानतः उन सभी को पहले रोल (एक स्ट्राइक के रूप में जाना जाता है ) के साथ नीचे गिराते हुए । अगर आपको स्ट्राइक मिलती है, तो वह फ्रेम पूरा हो जाता है और आपको दूसरी बार गेंद को रोल करने की जरूरत नहीं है। एक हड़ताल की कीमत 30 है।
यदि आप सभी दस को नहीं गिराते हैं, तो आपको एक और रोल मिलता है। यदि आप शेष सभी पिन को खटखटाते हैं, तो इसे एक अतिरिक्त के रूप में जाना जाता है । स्कोर 10 पिन के लायक है + पिंस की संख्या ने पहले रोल पर दस्तक दी। उदाहरण के लिए, अगर मैंने 7 पिन खटखटाया, तो शेष 3 को खटखटाने में कामयाब रहा, जिसकी कीमत 17 होगी।
यदि आपके दूसरे रोल के बाद आप सभी दस को खिसकाने में विफल रहते हैं, तो इसे एक खुले फ्रेम के रूप में जाना जाता है । स्कोर उस फ्रेम के लिए खटखटाए गए पिन की कुल संख्या के लायक है।
एक गेम में 10 फ्रेम होते हैं । यदि आप पारंपरिक बॉलिंग स्कोरिंग से परिचित हैं, तो आपको वर्ल्ड बॉलिंग स्कोरिंग के साथ 10 वें फ्रेम में अतिरिक्त रोल नहीं मिलता है। परंपरागत बॉलिंग स्कोरिंग में, 300 का सही स्कोर पाने के लिए लगातार 12 स्ट्राइक लेते हैं, जबकि वर्ल्ड बॉलिंग स्कोरिंग में लगातार 10 स्ट्राइक की आवश्यकता होती है।
चुनौती
आपकी चुनौती स्कोर शीट से दिए गए अंकों की गणना करना है।
स्कोर शीट पर, एक मिस को डैश ( - ), एक्स के साथ एक स्ट्राइक और स्लैश ( / ) के साथ एक स्पेयर द्वारा दर्शाया गया है । यदि ये लागू नहीं होते हैं, तो पिनफॉल काउंट केवल एक संख्या (1-9) के साथ इंगित किया जाता है। Fouls और विभाजन भी स्कोर शीट पर दर्ज किए जाते हैं, लेकिन आपको इन के बारे में चिंता करने की आवश्यकता नहीं है।
इनपुट
आपको प्रत्येक फ्रेम के लिए एक स्ट्रिंग दी जाएगी, जिसमें कुल दस फ्रेम होंगे। प्रत्येक फ्रेम में दो मान होंगे, या यदि स्ट्राइक थी तो 1 मान जितना कम होगा। आपका इनपुट एक फ़ंक्शन के लिए स्ट्रिंग पैरामीटर हो सकता है, फ़ाइल से या STDIN से पढ़ा जा सकता है।
उदाहरण के लिए, यदि मैंने अपने पहले रोल पर 1 पिन खटखटाया, तो 2 को खटखटाया, फ्रेम "12" जैसा दिखेगा। इसका मतलब 12 (बारह) नहीं है, लेकिन 1 और 2 का मतलब है, कुल 3 के लिए।
अगर मैं दोनों रोल (गटर बॉल्स) के साथ हर पिन को मिस करता हूं, तो यह इस तरह दिखेगा "-" (0 का स्कोर)।
प्रत्येक फ्रेम को एक स्थान से अलग किया जाएगा।
नमूना इनपुट
-- 9- -9 X -/ 8/ 71 15 44 X
इस उदाहरण को तोड़ने के लिए,
- फ़्रेम 1 (-) - दोनों रोल छूट गए। 0 रन बनाए
- फ़्रेम 2 (9-) - पहले रोल पर 9 नीचे गिरा, दूसरे रोल पर चूक गए। स्कोर 9
- फ़्रेम 3 (-9) - पहले पर सभी को याद किया, दूसरे पर 9 मिला। स्कोर 9
- फ़्रेम 4 (एक्स) - स्ट्राइक, सभी दस को खटखटाया। स्कोर 30
- फ़्रेम 5 (- /) - स्पेयर, पहले सभी पर चूक गए, 2 वें रोल के साथ सभी को नीचे गिरा दिया। स्कोर 10 + 0 = 10
- फ़्रेम 6 (8 /) - स्पेयर, पहले रोल पर 8 पिन, दूसरे 2 को 2 वें रोल के साथ खटखटाया। स्कोर 10 + 8 = 18
- फ़्रेम 7 (71) - खुला फ्रेम, पहले रोल पर 7 पिन, दूसरे रोल पर 1 पिन। स्कोर 7 + 1 = 8
- फ़्रेम 8,9,10 ऊपर दिए गए उदाहरणों का अनुसरण करते हैं।
उत्पादन
आउटपुट केवल एक मूल्य होगा जिसमें सभी 10 फ़्रेमों से स्कोर का योग है। नमूना इनपुट का उपयोग करते हुए, आउटपुट 128 होगा। आपका आउटपुट एक स्ट्रिंग या एक संख्यात्मक प्रकार हो सकता है। यह एक फ़ंक्शन रिटर्न मान हो सकता है, या STDOUT पर लिखा जा सकता है।
नियम
- मान लें कि इनपुट हमेशा मान्य होगा। उदाहरण के लिए, एक अमान्य फ्रेम "/ 8", "XX", "123", "0", आदि होगा।
- आपको विभाजन या बेईमानी के बारे में चिंता करने की आवश्यकता नहीं है।
- आपका कोड एक पूर्ण कार्यक्रम या एक फ़ंक्शन हो सकता है जो एक स्ट्रिंग में लेता है और स्कोर लौटाता है।
- आपके कोड को कोई अपवाद नहीं फेंकना चाहिए।
- यह कोड गोल्फ है, सबसे कम संख्या में बाइट्स जीत के साथ उत्तर ।
- जिन भाषाओं का उपयोग या आयात होता है, उनके कोड के भाग के रूप में आयात विवरणों को शामिल करना चाहिए और बाइट काउंट की ओर गिनना चाहिए।
परीक्षण के मामलों
"-- 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