भविष्य में जब Time Travel (TT के रूप में संक्षिप्त) सामान्य होगा, सिक्का उछालना एक गंभीर मन-खेल बन जाएगा। भविष्य की तैयारी के लिए हम उन कार्यक्रमों के लिए एक प्रतियोगिता बनाते हैं जहां समय यात्रा वास्तव में प्रविष्टियों के दृष्टिकोण से हो रही होगी।
प्रतियोगिता एक गोल-रॉबिन शैली की पहाड़ी है जिसमें राजा जावा कक्षाओं के बीच के मैच में सिक्का उछालता है।
सिक्के को उछालने के नियम
- दो खिलाड़ी हैं और 100 राउंड हैं।
- प्रत्येक दौर में एक सिक्का उछाला जाता है और परिणाम के आधार पर खिलाड़ियों में से 1 अंक प्राप्त होता है। प्रत्येक खिलाड़ी को एक अंक हासिल करने का 50% मौका है।
- टॉस करने के बाद दोनों खिलाड़ियों के पास लीवर को खींचकर समय को नियंत्रित करने का मौका है।
- यदि आप एक नीला लीवर (रिवर्ट स्टॉपर) खींचते हैं तो लीवर का उपयोग करने के लिए कोई भी टीटी संभव नहीं है या पहले का कोई भी राउंड नहीं है। टीटी के इन राउंड में जाने की कोशिश का कोई असर नहीं होगा।
- यदि आप एक लाल लीवर (रिवर्टर) खींचते हैं, तो आप समय को पूर्व दौर में वापस लाने का प्रयास करते हैं। यदि सफल होने पर प्रतिद्वंद्वी की मेमोरी को चुने हुए राउंड से पहले इसकी मेमोरी में वापस कर दिया जाएगा और चुने हुए राउंड से शुरू होने वाले सिक्का टॉस परिणाम भी हटा दिए जाएंगे । टीटी के बारे में अपने प्रतिद्वंद्वी के लिए एकमात्र संभव संकेत इसके अप्रयुक्त लीवर की संख्या होगी जो वापस वापस नहीं किया जाएगा।
- प्रत्येक खिलाड़ी के पास मैच की शुरुआत में 5 नीले और 20 लाल अप्रयुक्त लीवर होते हैं। ये लीवर टीटी से प्रभावित नहीं हैं।
- यदि कोई टीटी 100 वें दौर के अंत में नहीं होता है तो खेल समाप्त हो जाता है और उच्च स्कोर वाला खिलाड़ी जीत जाता है।
विवरण
- राउंड में 1-आधारित अनुक्रमण (1 से 100 तक) होता है।
- राउंड से पहले
x
आपको उपलब्ध नीले और लाल लीवर की संख्या प्रदान की जाती है, सिक्का टॉस के परिणाम तकx
(समावेशी) और आपके (अंतिम)x-1
वें राउंड की मेमोरी तक । - नीले रंग के लीवर को गोल में खींचना
x
किसी भी टीटी को रोक देता है, जिसके पासx
या उससे पहले एक राउंड पर गंतव्य होता है (यदि वह उसी सटीक राउंड पर भी होता है तो टीटी को ब्लॉक कर देता है)। - राउंड में लौटने का
x
मतलब है कि अगला राउंड राउंड होगाx
। - यदि दोनों खिलाड़ी किसी दौर के अंत में वापस लौटने का समय चुनते हैं तो वह पहले वाले गंतव्य पर वापस आ जाता है जो अवरुद्ध नहीं है। खिलाड़ी (ओं) को जो इस समय वापस करने की कोशिश की उनकी स्मृति रखेंगे।
तकनीकी जानकारी
- आपको प्रदान किए गए बॉट इंटरफ़ेस को लागू करने वाला एक जावा वर्ग लिखना चाहिए।
- अपने बॉट को प्रोजेक्ट में जोड़ें।
Bot
फ़ाइल में अपने बॉट का एक उदाहरण जोड़ेंController.java
।- आपकी कक्षा को कॉल के बीच जानकारी नहीं रखनी चाहिए । (ज्यादातर मामलों में केवल
final
कार्यों के बाहर चर होने से यह आवश्यकता पूरी हो जाती है।) - आप
memory
अपने लौटेAction
ऑब्जेक्ट के क्षेत्र में नियंत्रक को जानकारी दे सकते हैं । अगर कोई टीटी नहीं हुआ तो यह आपको अगली बारी में वापस दिया जाएगा। यदि कोई TT होता है, तो आपको पहले की संबंधित मेमोरी प्राप्त होगी। - आप इतिहास स्ट्रिंग का स्कोर प्राप्त करने के लिए कक्षा की
totalScore()
विधि का उपयोग कर सकते हैंGame
।
मसविदा बनाना
हर मोड़ पर आपकी
takeTurn(...)
पद्धति को 5 तर्कों के साथ कहा जाता है:- अप्रयुक्त नीले लीवर की संख्या
- अप्रयुक्त लाल लीवर की संख्या
- सिक्का उछालने का इतिहास, एक तार जिसमें 1 और 0 शामिल हैं, जो पिछले राउंड में आपकी जीत और हार को चिह्नित करता है। पहला पात्र पहले सिक्के को उछालने से मेल खाता है। (पहले दौर में स्ट्रिंग की लंबाई होगी
1
।) - एक स्ट्रिंग, पिछले दौर से आपकी संग्रहीत मेमोरी
- इस दौर के 1-आधारित सूचकांक
हर मोड़ पर आपकी विधि में एक
Action
वस्तु होती हैmove
आपकी कार्रवाई का वर्णन करने वाले क्षेत्र में पूर्णांक :0
बिना किसी कार्यवाही के-1
एक नीले लीवर को खींचने के लिए और टीटी को इस दौर से गुजरना- एक सकारात्मक पूर्णांक
x
, वर्तमान दौर से बड़ा नहीं है, एक लाल लीवर को खींचने के लिए और वापस दौर में वापस आने की कोशिश करेंx
- अमान्य पूर्णांकों को माना जाता है
0
।
इस दौर से अपनी स्मृति युक्त एक स्ट्रिंग जिसे आप संरक्षित करना चाहते हैं। ध्यान दें कि मेमोरी को स्टोर करना चुनौती का महत्वपूर्ण हिस्सा नहीं है । आप स्ट्रिंग में कोई उपयोगी डेटा संग्रहीत किए बिना अच्छी प्रविष्टियां कर सकते हैं। पहले दौर में स्ट्रिंग एक खाली स्ट्रिंग होगी।
आपकी विधि को एक मैच में औसतन 10 राउंड प्रति राउंड से अधिक समय नहीं लेना चाहिए।
- अयोग्यता में समय-सीमा के परिणामों को नियमित रूप से विफल करना।
स्कोरिंग
- एक मैच जीतने पर 2 अंक मिलते हैं और एक ड्रॉ दोनों खिलाड़ियों के लिए 1 अंक कमाता है। नुकसान कोई अंक नहीं कमाता है।
- एक बॉट का स्कोर उसके द्वारा एकत्र किए गए अंकों की कुल संख्या होगी।
- प्रतियोगियों की प्रत्येक जोड़ी के बीच खेले जाने वाले मैचों की संख्या प्रविष्टियों की संख्या और उनकी गति पर निर्भर करेगी।
दो सरल उदाहरण बॉट उत्तर के रूप में पोस्ट किए जाते हैं।
नियंत्रक और पहले युगल बॉट यहां उपलब्ध हैं ।
3 नवंबर तक जमा किए गए बॉट के साथ परीक्षा परिणाम।:
कुल स्कोर:
Oldschool: 3163
Random: 5871
RegretBot: 5269
Nostalgia: 8601
Little Ten: 8772
Analyzer: 17746
NoRegretsBot: 5833
Oracle: 15539
Deja Vu: 5491
Bad Loser: 13715
(कंट्रोलर कैट कैचर चैलेंज के कंट्रोलर पर आधारित है । @flawr के लिए धन्यवाद। यह इसे आधार के रूप में प्रदान करता है।)
बोनस: एक समान अवधारणा पर आधारित एक अच्छी 6 मिनट की फिल्म ।
If you pull a blue lever (revert stopper) no TT is possible to the round the lever was used or any earlier round anymore. TT's attempting to go to these rounds will have no effect.
If you pull a blue lever (revert stopper) no TT is possible through that round anymore. TT's attempting to go through the round will have no effect.
"एक दौर से गुजरना" क्या है?