खेल
हम में से ज्यादातर लोग फ्रॉगर के बारे में जानते हैं , 80 के दशक के आर्केड खेल जहां उद्देश्य एक व्यस्त राजमार्ग पर सुरक्षित रूप से मेंढक और घर में सुरक्षित रूप से पहुंचने के लिए एक खतरनाक भरे तालाब की आशा करना है।
कुछ महीने पहले एक फ्रॉगगर क्लोन विकसित करने के लिए एक चुनौती जारी की गई थी। लेकिन जब आप मेंढक का किरदार निभा सकते हैं तो फ्रॉगर क्लोन क्यों ? :)
निम्नलिखित सरलीकृत खेल ग्रिड पर विचार करें:
XXXXXXXXXXXXXXXXXXXXXXX North Safe Zone
-----------------------
| | <<<< Express Lane West (Lane 1)
| | > Gridlock East (Lane 2)
| | << Freeflowing Traffic West (Lane 3)
| | < Gridlock West (Lane 4)
| | >>>> Express Lane East (Lane 5)
-----------------------
XXXXXXXXXXX@XXXXXXXXXXX South Safe Zone
\__________ __________/
'
23 cells horizontally
हमारे पास पाँच लेन का ट्रैफ़िक है, प्रत्येक 23 कोशिकाएँ चौड़ी हैं, और दो सुरक्षित ज़ोन (जहाँ मेंढक सुरक्षित रूप से बाएँ और दाएँ घूम सकते हैं), 23 कोशिकाएँ भी चौड़ी हैं। आप दाएं और बाएं सीमाओं की अनदेखी कर सकते हैं क्योंकि ये सचित्र स्पष्टता के लिए हैं।
हमारे मेंढक केंद्र (12 वें) सेल पर, दक्षिणी सुरक्षित क्षेत्र में शुरू होते हैं, जैसा कि @
उपरोक्त आंकड़े में संकेत दिया गया है ।
खेल में समय को असतत चरणों में विभाजित किया जाता है जिसे फ्रेम कहा जाता है। फ्रॉग्जी एक तेज मेंढक है और प्रति फ्रेम में किसी भी दिशा (ऊपर, नीचे, दाएं, बाएं) में एक सेल को हॉप कर सकता है। वह किसी भी फ्रेम के लिए स्थिर रहना चुन सकता है। पाँच लेन में यातायात निरंतर गति से आगे बढ़ता है:
- एक्सप्रेस लेन पश्चिम (लेन 1) में यातायात 2 कोशिकाओं को हर फ्रेम में छोड़ देता है
- ग्रिडलॉक ईस्ट लेन (लेन 2) में यातायात हर दूसरे फ्रेम में 1 सेल सही चलता है
- फ्रीफ़्लोइंग ट्रैफ़िक वेस्ट लेन (लेन 3) में ट्रैफ़िक हर फ्रेम में 1 सेल छोड़ता है
- ग्रिडलॉक वेस्ट लेन (लेन 4) में यातायात हर दूसरे फ्रेम में 1 सेल छोड़ता है
- एक्सप्रेस लेन में यातायात पूर्व (लेन ५) हर फ्रेम में २ सेल सही चलता है
यातायात लगभग विशिष्ट रूप से परिभाषित है। इस पाठ फ़ाइल में 3,000 टाइमस्टेप्स । 'ट्रैफ़िक' में वाहनों और वाहनों के बीच रिक्त स्थान होते हैं। कोई भी वर्ण जो एक स्थान नहीं है, एक वाहन का हिस्सा है। पाठ फ़ाइल में पाँच लाइनें होती हैं, जो ट्रैफ़िक के पाँच लेन के समान होती हैं (उसी क्रम के साथ)।
वेस्टबाउंड लेन के लिए, फ्रेम 0 (गेम की शुरुआत) की शुरुआत में, हम लेन में पहले वाहन को प्लेइंग ग्रिड के दाहिने किनारे से परे मानते हैं।
पूर्वगामी गलियों के लिए, ट्रैफ़िक स्ट्रिंग को "पीछे की ओर" इस अर्थ में माना जाना चाहिए कि वाहन स्ट्रिंग के अंत में शुरू होते दिखाई देते हैं । फ्रेम 0 की शुरुआत में, हम इन लेन में पहले वाहन को खेल के मैदान के बाएं किनारे से परे मानते हैं।
एक उदाहरण के रूप में विचार करें:
Traffic Lane 1: [|==| =
Traffic Lane 2: |) = o
Traffic Lane 3: (|[]-[]:
Traffic Lane 4: <| (oo|
Traffic Lane 5: |==|] :=)
फिर खेल ग्रिड निम्नानुसार दिखाई देगा:
Start of Frame 0 XXXXXXXXXXXXXXXXXXXXXXX
[|==| =
|) = o
(|[]-[]:
<| (oo|
|==|] :=)
XXXXXXXXXXXXXXXXXXXXXXX
Start of Frame 1 XXXXXXXXXXXXXXXXXXXXXXX
[|==| =
|) = o
(|[]-[]:
<| (oo|
|==|] :=)
XXXXXXXXXXXXXXXXXXXXXXX
Start of Frame 2 XXXXXXXXXXXXXXXXXXXXXXX
[|==| =
|) = o
(|[]-[]:
<| (oo|
|==|] :=)
XXXXXXXXXXXXXXXXXXXXXXX
Start of Frame 3 XXXXXXXXXXXXXXXXXXXXXXX
[|==| =
|) = o
(|[]-[]:
<| (oo|
|==|] :=)
XXXXXXXXXXXXXXXXXXXXXXX
एक लेन में सभी ट्रैफ़िक "समाप्त" होने के बाद (यानी स्ट्रिंग बाहर निकलती है), हम स्ट्रिंग के सभी वर्णों को रिक्त स्थान मानते हैं।
हमारे मेंढक है squished यदि निम्न में से कोई होता है:
- मेंढक किसी भी फ्रेम पर, वाहन द्वारा कब्जा किए गए सेल पर कब्जा कर लेता है
- मेंढक एक एक्सप्रेस लेन में स्थिर रहता है और 1 सेल चौड़ाई का वाहन उस फ्रेम में उसके ऊपर से गुजरता है
- मेंढक पूर्व में "वाहन" के माध्यम से पश्चिम की ओर बढ़ता है, या पूर्व की ओर जाने वाले वाहन के माध्यम से पश्चिम में कूदता है
- मेंढक 7 (लाइन) के बाहर 23 (सेल) प्लेइंग ग्रिड द्वारा, किसी भी फ्रेम पर कूदता है
ध्यान दें कि ये एकमात्र स्थितियां हैं जिनके तहत एक मेंढक को निचोड़ा जाता है। विशेष रूप से, "ट्रैफिक" के साथ "मेंढक के साथ एक मेंढक को रोकना" अनुज्ञेय है, जैसा कि एक एक्सप्रेस लेन में एक सेल में या बाहर कूदने वाला एक मेंढक है जो एक ही फ्रेम में चौड़ाई -1 वाहन से गुजरता है।
उद्देश्य और स्कोरिंग
प्रोग्रामिंग चुनौती का उद्देश्य अंतिम वाहन को प्ले ग्रिड से बाहर निकलने से पहले जितनी बार संभव हो, मेंढक को सड़क के पार पहुंचाना है । यही है, फ्रेम एक्स के पूरा होने के तुरंत बाद कार्यक्रम समाप्त हो जाता है , जहां फ्रेम एक्स पहला फ्रेम है जो ग्रिड को ऐसी स्थिति में ले जाता है जहां कोई और वाहन मौजूद नहीं है।
आपके प्रोग्राम का आउटपुट एक स्ट्रिंग (या टेक्स्ट फ़ाइल) होना चाहिए जिसमें निम्नलिखित एन्कोडिंग का उपयोग करके मेंढक के लिए चाल का क्रम हो:
< frog moves left
> frog moves right
^ frog moves up
v frog moves down
. frog remains stationary
उदाहरण के लिए, स्ट्रिंग <<^.^
इंगित करती है कि मेंढक दो बार छोड़ दिया है, फिर ऊपर, फिर एक फ्रेम के लिए रुकता है, फिर ऊपर जाता है।
जब भी मेंढक दक्षिण सुरक्षित क्षेत्र से उत्तर सुरक्षित क्षेत्र की ओर जाता है, और जब भी मेंढक उत्तर सुरक्षित क्षेत्र से दक्षिण सुरक्षित क्षेत्र में पार करता है, तो एक बिंदु बनाया जाता है।
कुछ महत्वपूर्ण नियम:
- मेंढक को स्क्वीज़ नहीं करना चाहिए।
- कृपया अपने प्रोग्राम कोड के साथ अपना समाधान (चाल का क्रम) पोस्ट करें, या तो इनलाइन या एक टेक्स्ट फ़ाइल के रूप में (जैसे pastebin.com का उपयोग करके)।
- हमारा मेंढक प्रस्तुतकर्ता और पूर्वज्ञानी है, इसलिए आपका कार्यक्रम समाधान की मांग करते हुए किसी भी फ्रेम में किसी भी और सभी ट्रैफ़िक डेटा का उपयोग कर सकता है । इसमें ट्रैफ़िक के लिए डेटा शामिल है जो अभी तक प्लेइंग ग्रिड तक नहीं पहुंचा है।
- ग्रिड चारों ओर नहीं लपेटता है। ग्रिड से बाहर निकलने के कारण मेंढक को स्क्वीज़ किया जाएगा और इसलिए इसकी अनुमति नहीं है।
- किसी भी बिंदु पर ट्रैफ़िक "रीसेट" या मेंढक "टेलीपोर्ट" नहीं करता है। अनुकरण निरंतर है।
- मेंढक बाहर निकलने के बाद दक्षिण सुरक्षित क्षेत्र में लौट सकता है, लेकिन यह एक बिंदु के रूप में नहीं गिना जाता है। इसी तरह उत्तर सुरक्षित क्षेत्र के लिए।
- प्रतियोगिता विजेता वह कार्यक्रम है जो सबसे अधिक संख्या में क्रॉसिंग की उपज के क्रम को उत्पन्न करता है।
- किसी भी अतिरिक्त प्रश्न या चिंताओं के लिए, कृपया टिप्पणी अनुभाग में पूछने के लिए स्वतंत्र महसूस करें।
कुछ अतिरिक्त प्रोत्साहन के लिए, मैं जीतने के कार्यक्रम में +100 प्रतिनिधि के इनाम में जोड़ दूंगा जब मैं ऐसा करने में सक्षम हूं।
बोनस
प्ले ग्रिड के प्रत्येक कोने के लिए बेस स्कोर * (10% तक) को 2.5% मेंढक छूता है। ग्रिड के चार कोने दो सुरक्षित क्षेत्रों की सबसे बाईं और दाईं ओर की कोशिकाएँ हैं।
बेस स्कोर के लिए 25% * यदि आपकी चाल का क्रम मेंढक को भीतर तक सीमित रखता है +/- पूरे सिमुलेशन के लिए उसके शुरुआती सेल के बाएं या दाएं 4 सेल (वह निश्चित रूप से स्वतंत्र रूप से लंबवत स्थानांतरित कर सकते हैं)।
कोई स्कोरिंग बोनस नहीं है, लेकिन ओपी में विशेष प्रॉप्स किसी भी व्यक्ति के पास जाएगा जो त्वरित एन 'गंदे समाधान सत्यापनकर्ता पोस्ट करता है ताकि मुझे एक कार्यक्रम न करना पड़े। ;) एक सत्यापनकर्ता बस चालों के अनुक्रम को स्वीकार करेगा, इसकी वैधता (नियमों और यातायात फ़ाइल के अनुसार) सुनिश्चित करेगा, और इसके स्कोर (यानी क्रॉसिंग की कुल संख्या) की रिपोर्ट करेगा।
* कुल स्कोर आधार स्कोर के बराबर है और बोनस, निकटतम पूर्णांक तक गोल है।