प्रोग्राममैन 'पीएसी-मैन
सेटिंग
आप पीएसी-मैन के रूप में खेलते हैं। आप भूत से बचने के दौरान किसी और से पहले छर्रों, फलों और बिजली छर्रों को इकट्ठा करना चाहते हैं।
नियम
- हर वैध पीएसी मैन एक भूलभुलैया में होगा। 10 खेलों के बाद सबसे अधिक संचयी स्कोर वाला खिलाड़ी जीत जाएगा।
- एक गेम खत्म हो गया है जब सभी पीएसी-मेन मर चुके हैं, सभी छर्रों चले गए हैं, या 500 मोड़ बीत चुके हैं
- यदि एक पीएसी मैन मर जाता है, तो वह भूत के रूप में खेलना जारी रखता है
- एक बिजली की गोली खाने से आप 10 मोड़ के लिए अजेय हो जाएंगे, और आपको भूत खाने की अनुमति देगा
- एक घोस्ट खाने से भूत को एक यादृच्छिक स्थान पर टेलीपोर्ट किया जाएगा
- भूत पीक-मेन के अलावा कुछ भी नहीं खा सकते हैं, और कोई अंक नहीं मिलता है
- निम्नलिखित वस्तुओं को पीएसी मैन के रूप में खाने से आपको निम्नलिखित बिंदु मिलेंगे:
- गोली: १०
- पावर पेलेट: 50
- फल: १००
- भूत: २००
उलझन
यदि n पीएसी-मेन हैं, तो प्राइम के एल्गोरिथ्म का उपयोग करके आकार का एक भूलभुलैया उत्पन्न sqrt(n)*10किया sqrt(n)*10जाएगा (इसके कम नदी कारक के कारण) , फिर पूरी तरह से लट में, पहले से मौजूद मृत सिरों को वरीयता देते हुए। इसके अलावा, इस ब्रेडिंग को किनारों पर किया जा सकता है, ताकि ऊपर से नीचे और बाएं से दाएं कुछ रास्ते हों।
वहां होगा:
2nभूत4nबिजली छर्रों2nफलnपीएसी-पुरुष उन स्थानों में जहां जुड़े हुए पड़ोसी वर्ग खाली हैं।- शेष सभी खाली स्थानों को छर्रों से भर दिया जाएगा
इसलिए, 10 खिलाड़ियों के साथ एक प्रारंभिक नक्शा कुछ इस तरह दिखाई देगा (भूत = हरा, पेलेट = एक्वा, फल = लाल, पीएसी-मैन = पीला):

इनपुट आउटपुट
खेल की शुरुआत में , आपको पात्रों की एक एकल पंक्ति दी जाएगी, जो नक्शे के हर वर्ग में दीवारों का प्रतिनिधित्व करती है। प्रत्येक वर्ग के लिए, ऊपर बाईं ओर से शुरू होकर, दाईं ओर बढ़ते हुए, और अगली पंक्ति में लपेटते हुए, आपको दीवार स्थिति का प्रतिनिधित्व करने वाला एक हेक्स अंक दिया जाएगा:
0: No walls
1: North wall
2: East wall
3: East & North wall
4: South wall
5: South & North wall
6: South & East wall
7: Won't occur
8: West wall
9: West & North wall
A: West & East wall
B: Won't occur
C: West & South wall
D: Won't occur
E: Won't occur
F: Won't occur
सीधे शब्दों में कहें, उत्तर = 1, पूर्व = 2, दक्षिण = 4, और पश्चिम = 8, एक साथ जोड़े।
फिर, प्रत्येक मोड़ पर , आपको अपनी वर्तमान स्थिति और आपके दर्शन की पंक्ति में आइटम दिए जाएंगे (यदि आप एक पीएसी-मैन हैं। सभी भूत अपने रिश्तेदार की स्थिति से -5 से +5 तक सभी वर्गों को प्राप्त करते हैं)। आपकी दृष्टि की दिशा उस दिशा पर आधारित होगी, जिस पर आपने अंतिम यात्रा की थी। यदि आपने उत्तर की यात्रा की है, तो आपको सभी वर्गों को सीधे उत्तर, पूर्व और पश्चिम में दिया जाएगा, जब तक कि कोई दीवार आपके दृश्य को नहीं काटती है, साथ ही एक वर्ग उत्तर-पश्चिम और उत्तर-पूर्व को काटती है, यदि कोई दीवार आपके दृश्य को नहीं काटती है। यदि आप स्थानांतरित नहीं करने का चयन करते हैं, तो आपको सभी 8 दिशाओं में वर्ग दिए जाएंगे।
दृश्य के लिए, Iअदृश्य का Vअर्थ है, दृश्यमान का अर्थ है, Pपीएसी-मैन (उत्तर-पूर्व का सामना करते हुए पीएसी-मैन):
|I I|V|I|
|I V|V V|
|V V P|I|
|I I|I|I|
प्रत्येक वर्ग एक समन्वय द्वारा दिया जाएगा, और फिर यह सामग्री है। यह सामग्री निम्नलिखित वर्णों द्वारा दर्शाई गई है:
P: 1 या अधिक पीएसी मैनG: 1 या उससे अधिक भूतo: गोलीO: बिजली की गोलीF: फल का टुकड़ाX: कुछ भी तो नहीं
अगर किसी चौक पर भूत और कुछ है तो Gवापस कर दिया जाएगा।
इसलिए, यदि आप वर्ग पर थे, तो आप 23,70उत्तर की ओर चले गए, आपके ऊपर का वर्ग एक मृत अंत है और इसमें एक बिजली की गोली है, और आपके दोनों तरफ दीवारें हैं, आपका इनपुट होगा:
23,70X 22,70O
अपने वर्तमान वर्ग पर, यह दिखाएगा कि Gक्या आप भूत हैं, Pयदि आपके वर्ग में एक और पीएसी मैन है, अन्यथा एX
फिर आप STDOUT के माध्यम से निम्नलिखित आइटम वापस करेंगे:
एक एकल वर्ण जो एक दिशा ( North, East, South, West, or XStay) का प्रतिनिधित्व करता है ।
एक दिशा में गुजरने से पहले, आप किसी भी निर्देशांक में पास हो सकते हैं x,y, और उस वर्ग की दीवारों को वापस पारित किया जाएगा (जैसा कि नीचे वर्णित है)
जब तक Qएसटीडीआईएन के माध्यम से इसे पारित नहीं किया जाता है तब तक कार्यक्रम को लगातार चलना चाहिए । प्रत्येक खेल के लिए कार्यक्रमों को फिर से शुरू किया जाएगा।
एसटीडीआईएन (अन्य पीएसी-मेन डेटा या होस्ट प्रोग्राम द्वारा रखे गए डेटा सहित) से बाहर की अन्य जानकारी तक पहुँचने की अनुमति नहीं है।
1000 एमएस के भीतर एक कदम वापस करने में विफलता कार्यक्रम को समाप्त कर देगी (मेरी काफी सभ्य Win8 मशीन पर चल रही है)। यह दिए जाने पर प्रारंभिक भूलभुलैया लेआउट को संसाधित करने के लिए आपको 2 सेकंड दिए जाएंगे
होस्ट पायथन में लिखा जाएगा, और अपने बॉट का परीक्षण करने के लिए कोड आगामी है।
अपवाद स्वरूप मामले
- यदि कई पीएसी-मेन एक ही स्थान पर समाप्त होते हैं, तो न तो वर्तमान वर्ग की सामग्री प्राप्त करें, जब तक कि उनमें से 1 अजेय न हो, उस स्थिति में, अजेय पीएसी-मैन को टैबलेट प्राप्त होगा।
- एक भूत द्वारा खाया गया पै-मैन कहीं और टेलीपोर्ट नहीं किया जाएगा। यदि दो पीएसी-पुरुष एक वर्ग पर हैं, और एक अजेय है, तो भूत को टेलीपोर्ट किया जाएगा।
- भूत के रूप में टेलीपोर्ट किए जाने से आप 1 मोड़ के लिए आगे बढ़ते हैं। भूत के रूप में खेलते समय, आप बस अपनी बारी को छोड़ देंगे
- एक दीवार के माध्यम से स्थानांतरित करने का प्रयास "स्टे" के रूप में व्याख्या किया जाएगा
प्रारंभिक भूतों में से प्रत्येक को 4 व्यक्तित्व लक्षणों में से एक प्राप्त होगा, जैसा कि यहां वर्णित है , निम्न संशोधन के साथ:
- वर्णित बगों को डुप्लिकेट नहीं किया जाएगा
- वे सभी शुरू से ही सक्रिय रहेंगे
- वे केवल उस खिलाड़ी के प्रति संवेदनशील होते हैं, जिसने गोली खा ली है
- वे अनिश्चित काल के लिए स्कैच से स्विच करने के लिए स्विच करेंगे, प्रत्येक में स्विच से पहले निश्चित संख्या में मोड़ होंगे
- पीछा करने के लिए स्विच करने पर, वे पीछा करने के लिए निकटतम पीएसी मैन पाएंगे, और अपने पीछा की अवधि के लिए उस पीएसी मैन का पीछा करेंगे। (यदि निकटता के लिए एक टाई है, तो पीएसी-मैन को छद्म रूप से चुना जाएगा)
- ब्लिंक की गति तेज नहीं होगी
- Inky पीछा करने के लिए स्विच करने के बाद अपनी गणना के आधार पर निकटतम भूत को चुन लेगा।
- क्लाइड को सभी खिलाड़ी 8 वर्ग दूर मिलेंगे, फिर सबसे दूर के खिलाड़ी का अनुसरण करेंगे।
- क्लाइड को छोड़कर सभी भूत 5 वर्ग से अधिक दूर के खिलाड़ी को निशाना नहीं बनाएंगे
मैं एक मानक भाषा या .exe (कोड के साथ) से संकलन योग्य कोड स्वीकार करूंगा।
प्रोग्रामिंग टिप्स
आप मेरे नियंत्रक के साथ हो सकते हैं। आपको प्रोग्राम के समान निर्देशिका में / bots / your_bot_name / फ़ोल्डर डालना होगा। फ़ोल्डर के भीतर, आपको अपने प्रोग्राम (एक्स:) python my_bot.py, और अपने बॉट को निष्पादित करने के लिए कमांड युक्त कमांड जोड़ने की जरूरत है ।
नियंत्रक कोड Github (Python कोड) पर है, यदि आपको ग्राफिक्स चाहिए तो Pygame की आवश्यकता है।) विंडोज़ और लिन पर परीक्षण किया गया।
स्कोर
घोस्टबस्टर: 72,840 अंक
पथरी: 54,570 अंक
शॉर्टसाइटेड: 50,820 अंक
परिहार: 23,580 अंक
भौतिक विज्ञानी: 18,330 अंक
रैंडमवॉक: 7,760 अंक
डंबपैक: 4,880 अंक