इस चुनौती का लक्ष्य एक प्रोग्राम या फ़ंक्शन लिखना है जो किसी दिए गए पाठ्यक्रम को पूरा करने के लिए आवश्यक हड़तालों की कम से कम राशि लौटाता है।
इनपुट
- पाठ्यक्रम के लेआउट को किसी भी उपयुक्त तरीके से और प्रारूप में पारित किया जा सकता है जिसे आप पसंद करते हैं। (कंसोल से पढ़ा गया, इनपुट पैरामीटर के रूप में पारित किया गया, किसी फ़ाइल या किसी अन्य, मल्टीलाइन-स्ट्रिंग, स्ट्रिंग ऐरे, टू-डायमेंशनल कैरेक्टर / बाइट ऐरे से पढ़ा गया)।
- गेंद और छेद की शुरुआत की स्थिति को इनपुट के रूप में भी पारित किया जा सकता है, इसे इनपुट से पार्स करने की आवश्यकता नहीं है। परीक्षण-मामलों में वे यह सुनिश्चित करने के लिए पाठ्यक्रम में शामिल हैं कि वास्तविक स्थिति के बारे में कोई भ्रम नहीं है।
- जब तक वे अभी भी अलग-अलग वर्णों (जैसे मुद्रण योग्य ASCII वर्ण) के रूप में पहचानने योग्य हैं, तब तक आप इनपुट वर्णों को कुछ और के लिए फिर से तैयार कर सकते हैं।
उत्पादन
- प्रोग्राम को सबसे कम संभव स्कोर (छेद तक पहुंचने के लिए आवश्यक कम से कम स्ट्राइक) को एक समझदार प्रारूप में इनपुट के रूप में पारित करना होगा (स्ट्रिंग, पूर्णांक, फ्लोट या हाइकु परिणाम का वर्णन करते हुए)
- यदि पाठ्यक्रम को हरा पाना असंभव है,
-1
(या अपनी पसंद के किसी भी अन्य मिथ्या मूल्य को जो एक बीटेबल कोर्स के लिए वापस नहीं किया जाएगा)।
उदाहरण:
इस उदाहरण में स्थिति 0-आधारित, X / Y, बाएँ-से-दाएँ, ऊपर-नीचे - नोट की गई हैं, लेकिन आप किसी भी प्रारूप का उपयोग कर सकते हैं, क्योंकि परिणाम पूरी तरह से प्रारूप-स्वतंत्र वैसे भी है।
इनपुट:
###########
# ....#
# ...#
# ~ . #
# ~~~ . #
# ~~~~ #
# ~~~~ #
# ~~~~ o #
# ~~~~ #
#@~~~~ #
###########
Ball (Start-Position): 1/9
Hole (End-Position): 8/7
आउटपुट:
8
नियम और क्षेत्र
पाठ्यक्रम में निम्नलिखित क्षेत्र शामिल हो सकते हैं:
'@'
गेंद - पाठ्यक्रम की शुरुआत'o'
छेद - पाठ्यक्रम का लक्ष्य'#'
दीवार - दीवार से टकराने पर बॉल रुकेगी'~'
पानी - बचना चाहिए'.'
रेत - गेंद रेत पर तुरंत बंद हो जाएगी' '
आइस - बॉल तब तक स्लाइड करती रहेगी जब तक कि यह कुछ हिट न कर दे
खेल के बुनियादी नियम और प्रतिबंध:
- गेंद तिरछे नहीं चल सकती, केवल बाएँ, दाएँ, ऊपर और नीचे।
- गेंद पानी के सामने, केवल दीवारों के सामने, रेत पर और छेद में नहीं रुकेगी।
- पानी में शॉट्स अवैध / असंभव हैं
- गेंद छेद में रहेगी, इस पर नहीं छोड़ें जैसे कि यह बर्फ पर होगा
- पाठ्यक्रम हमेशा आयताकार होता है।
- पाठ्यक्रम हमेशा पानी या दीवारों से घिरा होता है (कोई सीमा जांच आवश्यक नहीं)।
- हमेशा एक गेंद और एक छेद होता है।
- सभी पाठ्यक्रमों को हरा पाना संभव नहीं है।
- एक ही (सबसे कम) स्कोर के परिणामस्वरूप कई पथ हो सकते हैं।
खामियों और जीत की स्थिति
- मानक खामियों को मना किया जाता है
- कार्यक्रमों को समाप्त करना चाहिए
- आप अतिरिक्त नियम नहीं बना सकते हैं (गेंद को इतनी जोर से मारना कि वह पानी पर गिर जाए, एक दीवार से रिबाउंड हो जाए, रेत के खेतों में कूद जाए, कोनों के चारों ओर मोड़, आदि)
- यह कोड-गोल्फ है , इसलिए कम से कम वर्णों के साथ समाधान जीतता है।
- समाधान सभी प्रदान किए गए परीक्षण-मामलों को संभालने में सक्षम होना चाहिए, यदि उपयोग की गई भाषा के प्रतिबंधों के कारण यह असंभव है तो कृपया अपने उत्तर में निर्दिष्ट करें।
परीक्षण के मामलों
पाठ्यक्रम # 1 (2 हमले)
####
# @#
#o~#
####
पाठ्यक्रम # 2 (संभव नहीं)
#####
#@ #
# o #
# #
#####
कोर्स # 3 (3 हमले)
~~~
~@~
~.~
~ ~
~ ~
~ ~
~ ~
~.~
~o~
~~~
पाठ्यक्रम # 4 (2 हमले)
#########
#~~~~~~~#
#~~~@~~~#
## . ##
#~ ~ ~ ~#
#~. o .~#
#~~~ ~~~#
#~~~~~~~#
#########
पाठ्यक्रम # 5 (संभव नहीं)
~~~~~~~
~... ~
~.@.~.~
~... ~
~ ~ ~.~
~ . .o~
~~~~~~~