विज्ञापन

क्या आप हमेशा कोड सीखना चाहते थे लेकिन यह नहीं जानते कि शुरुआत कहाँ से करें? जानें कि पायथन और कुछ सरल इलेक्ट्रॉनिक्स का उपयोग करके रास्पबेरी पाई पर Minecraft को कैसे नियंत्रित किया जाए। यहाँ अंतिम परिणाम है:

इस प्रोजेक्ट के लिए आपको Pi 2 या नए की आवश्यकता होगी, और जब आप इनमें से अधिकांश कार्यों को Secure Shell (SSH) पर कमांड लाइन के माध्यम से पूरा कर सकते हैं, यह ट्यूटोरियल सीधे Pi पर कोडिंग पर ध्यान केंद्रित करेगा।

Minecraft के लिए नया? चिंता मत करो - यहाँ हमारा है Minecraft Beginner's गाइड द (लेटकोमर) बिगिनर गाइड टू माइनक्राफ्टयदि आपको पार्टी में देरी हो रही है, तो चिंता न करें - इस व्यापक शुरुआत के मार्गदर्शक ने आपको कवर किया है। अधिक पढ़ें .

Minecraft Pi का परिचय

Minecraft-पी-मेनू

रास्पबेरी पाई के लिए Minecraft सीखने और टिंकरिंग के लिए विकसित किया गया है (और यह मुफ़्त है)। यह एक एप्लिकेशन प्रोग्रामिंग इंटरफेस (एपीआई) के साथ आता है जो कोड के लिए आसानी से Minecraft से बात करने का एक तरीका प्रदान करता है। यह सीखने के लिए शानदार है कि पायथन में कैसे कोड किया जाए, साथ ही साथ इलेक्ट्रॉनिक्स के साथ शुरुआत करना

instagram viewer
बिगिनर के इलेक्ट्रॉनिक्स: 10 कौशल जो आपको जानना चाहिएहम में से कई लोगों ने भी कभी टांका लगाने वाले लोहे को नहीं छुआ है - लेकिन चीजें बनाना अविश्वसनीय रूप से फायदेमंद हो सकता है। यहां दस बुनियादी DIY इलेक्ट्रॉनिक्स कौशल हैं जो आपको आरंभ करने में मदद करते हैं। अधिक पढ़ें .

अजगर क्या है?

अजगर एक प्रोग्रामिंग भाषा है। यह है व्याख्या की, जिसका अर्थ है कि जब आप पायथन फ़ाइल या प्रोग्राम चलाते हैं, तो कंप्यूटर को पहले फ़ाइल में एक छोटा सा काम करना पड़ता है। डाउनसाइड्स यह है कि इसकी तुलना में इसे धीमा माना जा सकता है संकलित भाषाएँ.

व्याख्या की गई भाषाओं के लाभ कोडिंग की गति और उनकी मित्रता हैं। आपको कंप्यूटर बताने की जरूरत नहीं है क्या डेटा जिसे आप स्टोर करना चाहते हैं, बस आप कुछ स्टोर करना चाहते हैं और कंप्यूटर यह पता लगा लेगा कि क्या करना है। बेशक, अपवाद हैं, और यह कुछ हद तक सरलीकृत दृश्य है, हालांकि प्रोग्रामिंग मजेदार होनी चाहिए! यदि आप जटिल तकनीकी विवरण में खुदाई शुरू करते हैं तो यह थोड़ा कठिन हो सकता है।

अजगर संवेदनशील है। यह जानना महत्वपूर्ण है, क्योंकि पायथन वस्तुओं को पहचान नहीं पाएगा भले ही उन्हें सही तरीके से लिखा गया हो अगर मामला गलत है। यदि विधि वास्तव में "DoSomething ()" कहा जाता है, तो "Dosomething ()" काम नहीं करेगा। अजगर भी इंडेंटेशन का उपयोग करता है. अन्य प्रोग्रामिंग भाषाएं परवाह नहीं कर सकती हैं कि आपके कोड में कितने इंडेंट हैं, जबकि पायथन कर देता है ध्यान। पायथन को यह बताने के लिए इंडेंट्स का उपयोग किया जाता है कि कोड कहां है अन्य भाषाएँ समूह कोड के लिए "घुंघराले ब्रेस" ({}) का उपयोग कर सकती हैं - पायथन इनका उपयोग नहीं करता है। पाइथन टिप्पणियों के लिए एक हैश (#) का उपयोग करता है, और टिप्पणियों का उपयोग अन्य डेवलपर्स या लोगों को यह बताने के लिए किया जाता है कि वे कोड को देख रहे हैं कि कोई विशेष भाग क्या करता है, या इसकी आवश्यकता क्यों है। एक हैश के बाद अजगर कुछ भी अनदेखा करता है।

अंत में, पायथन के दो मुख्य संस्करण हैं - पायथन 2.7.x और पायथन 3.x। दोनों के बीच कुछ अंतर हैं (क्या अंतर हैं?). यह ट्यूटोरियल पायथन 3 का उपयोग करेगा।

प्रारंभिक व्यवस्था

अपने पाई प्रदान करना पहले से ही है सेटअप और रनिंगियन कैसे एक रास्पबेरी पाई पर एक ऑपरेटिंग सिस्टम स्थापित करने के लिएयहां बताया गया है कि अपने रास्पबेरी पाई पर ओएस कैसे स्थापित करें और त्वरित आपदा वसूली के लिए अपने आदर्श सेटअप को कैसे क्लोन करें। अधिक पढ़ें , बहुत प्रारंभिक सेटअप की आवश्यकता नहीं है।

टर्मिनल खोलें (मेनू> सहायक उपकरण> टर्मिनल) और यह कमांड चलाएँ। रिपॉजिटरी सूची को अद्यतन रखने के लिए यह हमेशा अच्छा अभ्यास है, और यह कार्यक्रमों की नवीनतम सूची को डाउनलोड करेगा (यह स्वयं प्रोग्राम डाउनलोड नहीं करेगा, इससे पाई को पता चल जाता है कि प्रोग्राम को क्या कहा जाता है और कहां ढूंढना है उन्हें)।

sudo apt-get update। 

अब पाई को अपडेट करें (इसमें कुछ समय लग सकता है):

sudo apt-get उन्नयन। 

पाइथन और माइनक्राफ्ट पाई पहले से ही स्थापित हैं, हालांकि अगर किसी भी कारण से Minecraft Pi स्थापित नहीं है, इसे स्थापित करना आसान है रास्पबेरी पाई पर सॉफ़्टवेयर स्थापित करने के 5 तरीकेरास्पबेरी पाई के साथ कुछ भी करने के लिए, आपको यह जानने की आवश्यकता होगी कि ऑपरेटिंग सिस्टम कैसे स्थापित किया जाए, और इस पर चलने के लिए सॉफ़्टवेयर। यदि आप लिनक्स में नए हैं, तो यह चुनौतीपूर्ण हो सकता है। अधिक पढ़ें :

sudo apt-get install मिनीक्राफ्ट-पाई

दस्तावेजों पर नेविगेट करें और "Minecraft" नामक एक नया फ़ोल्डर बनाएं:

सीडी दस्तावेज़ / mkdir Minecraft

आप इस नए फ़ोल्डर की सामग्री देख सकते हैं:

ls

यहां एक टिप है - यदि आप टाइप करना शुरू करते हैं और टैब कुंजी को हिट करते हैं, तो कमांड लाइन आपके लिए स्टेटमेंट को स्वत: पूर्ण करने का प्रयास करेगी।

आप pwd का उपयोग करके वर्तमान निर्देशिका के लिए पथ की जांच कर सकते हैं, जो प्रिंट वर्किंग डायरेक्टरी के लिए है:

लोक निर्माण विभाग

पर जाकर Minecraft शुरू करें मेनू> खेल> Minecraft Pi. आपको इसे चलाने की आवश्यकता होगी, लेकिन बाद में इसे वापस आ जाएगा।

पायथन 3 से खोलें मेनू> प्रोग्रामिंग> पायथन 3 (IDLE). यह कार्यक्रम आपको पायथन कमांड चलाने और प्रोग्राम लिखने का एक तरीका प्रदान करता है।

अब आप अपने पायथन आदेशों को यहाँ टाइप कर सकते हैं, लेकिन यह बहुत व्यावहारिक नहीं है। के लिए जाओ फ़ाइल> नई फ़ाइल और फिर फ़ाइल> सहेजें और इसे आपके द्वारा पहले बनाए गए फ़ोल्डर में सहेजें। (दस्तावेज़> Minecraft). चलो इसे कहते हैं "hello_world.py“. आपको .py एक्सटेंशन का उपयोग करने की आवश्यकता नहीं है, यह स्वचालित रूप से जोड़ा जाएगा, लेकिन यह अच्छा अभ्यास है।

यदि आप टर्मिनल पर वापस जाते हैं, और Minecraft फ़ोल्डर में नेविगेट करते हैं, तो आपको उस फ़ाइल को देखना चाहिए जिसे आपने अभी बनाया है:

सीडी Minecraft / ls

आप इस फ़ाइल को इस तरह चला सकते हैं:

अजगर हेल्लो_वर्ल्ड

ध्यान दें कि "अजगर" सभी लोअर-केस है। यह फ़ाइल नाम से पहले होना चाहिए, क्योंकि यह Pi को बताता है कि निम्न फ़ाइल पायथन है, इसलिए इसे इस तरह निष्पादित किया जाना चाहिए।

अजगर संपादक पर वापस जाएँ और टाइप करें:

प्रिंट "हैलो, वर्ल्ड!"

इस फ़ाइल को सहेजें और इसे फिर से चलाएँ - आपको अब "हैलो, वर्ल्ड!" देखना चाहिए। कमांड लाइन में दिखाई देते हैं - नीट! प्रिंट कमांड केवल पायथन को दोहरे उद्धरण चिह्नों में निम्नलिखित पाठ का उत्पादन करने के लिए कहता है। यह अच्छा है, लेकिन Minecraft के लिए बहुत उपयोगी नहीं है, इसे लिंक करें:

mcpi.minecraft आयात से Minecraft mc = Minecraft.create () mc.postToChat ("हैलो, विश्व!"

अब यदि आप इस फ़ाइल को सहेजते और चलाते हैं, तो आपको "हैलो, वर्ल्ड!" देखना चाहिए। Minecraft खेल में दिखाई देते हैं। कोड को तोड़ने दें:

mcpi.minecraft आयात से Minecraft

यह पंक्ति पायथन को बताती है कि आप किसी अन्य फ़ाइल से कोड का उपयोग करना चाहते हैं। इस mcpi.minecraft फ़ाइल को Minecraft के आसान नियंत्रण की अनुमति देने के लिए विकसित किया गया था।

mc = Minecraft.create ()

यह लाइन "mc" (Minecraft) नामक एक ऑब्जेक्ट बनाती है। आपको इसे Minecraft गेम में संचार की अनुमति देने के लिए बनाना होगा - यह केवल फ़ाइल को शामिल करने के लिए पर्याप्त नहीं है।

mc.postToChat ("हैलो, वर्ल्ड!")

अंत में, यह लाइन चैट को कुछ टेक्स्ट लिखने के लिए Minecraft को बताती है। "हैलो, वर्ल्ड!" कुछ और करने के लिए और देखें कि क्या होता है, लेकिन दोनों दोहरे उद्धरणों को शामिल करना याद रखें। यदि आपको सॉफ़्टवेयर की समस्या हो रही है, तो ये कुछ सामान्य पायथन और Minecraft Pi त्रुटियाँ हैं:

  • एट्रीब्यूटर - यह एक टाइपो है, जैसे प्रिंट के बजाय पिंट या प्रेंट
  • NameError: नाम raft Minecraft ’परिभाषित नहीं है - आपके द्वारा आवश्यक मॉड्यूल आयात करना याद रखें
  • NameError: नाम ’true’ परिभाषित नहीं है - पायथन मामला संवेदनशील है, “ट्रू” में बदलें
  • socket.error: [Errno 111] कनेक्शन से इनकार कर दिया - सुनिश्चित करें कि Minecraft चल रहा है

परियोजनाओं

अब जब आप पायथन और माइनक्राफ्ट की मूल बातें जानते हैं, तो आइए कुछ बेहतरीन प्रोजेक्ट बनाते हैं। सभी कोडेक से डाउनलोड किया जाएगा Github.

ऑटोमेटेड ब्रिज बिल्डर

Minecraft-पी-ब्रिज-बिल्डर

यह कार्यक्रम प्रभावी रूप से पानी पर एक पुल का निर्माण करेगा। जब खिलाड़ी पानी के शरीर के पास पहुंच जाता है, तो कार्यक्रम कई ब्लॉकों को पत्थर में बदल देगा। जैसा कि Minecraft एक समन्वय प्रणाली का उपयोग करता है, खिलाड़ी के स्थान को प्राप्त करना बहुत आसान है, साथ ही खिलाड़ी के आसपास के प्रकारों के साथ। माइनक्राफ्ट पाई थोड़ी सीमित है, इसलिए थोक में कई अलग-अलग ब्लॉकों को अपडेट करना संभव नहीं है। हालाँकि, आप इस व्यवहार को स्वयं आसानी से कोड कर सकते हैं।

एक नई फ़ाइल बनाएं (फ़ाइल> नई फ़ाइल) और इसे "bridge_builder.py“.

mcpi.minecraft आयात से Minecraft। mc = Minecraft.create () # Minecraft Object बनाएं जबकि True: x, y, z = mc.player.getPos () # store खिलाड़ी की स्थिति # आसपास के ब्लॉक को a = mc.getBlock (x, y - 1, z + स्टोर करें) 1) बी = mc.getBlock (x, y - 1, z - 1) c = mc.getBlock (x - 1, y - 1, z) d = mc.getBlock (x + 1, y - 1, z) यदि a == 8 या एक == 9 या बी == 8 या बी == 9 या सी == 8 या सी == 9 या डी == 8 या डी == 9: # 8 या 9 है पानी। फर्श के आसपास के ब्लॉक को एक ठोस (पत्थर) पर सेट करें यदि पानी mc.setBlocks पाया जाता है (x, y - 1, z, x + 1, y - 1, z + 1, 1) mc.setBlocks (x, y - 1, z, x - 1, y - 1, z - 1, 1) mc.setBlocks (x, y - 1, z, x - 1, y - 1, z + 1, 1) mc .setBlocks (x, y - 1, z, x + 1, y - 1, z - 1, 1)

ध्यान दें कि y मान वास्तव में y - 1 को कैसे देख रहा है। यह मंजिल स्तर है। यदि y के मूल्य का उपयोग किया जाता है, तो स्क्रिप्ट घुटने के स्तर पर ब्लॉक की तलाश करेगी - यह बहुत अच्छी तरह से काम नहीं करेगा! Mc.getBlock () दिए गए निर्देशांक के लिए एक ब्लॉक की आईडी लौटाता है। जैसा कि x, y और z खिलाड़ी के निर्देशांक हैं, आप खिलाड़ी के चारों ओर स्थितियाँ प्राप्त करने के लिए उनसे जोड़ या घटा सकते हैं। आपको x, y और z मानों का उपयोग करने की आवश्यकता नहीं है, आप किसी भी संख्या का उपयोग कर सकते हैं, हालाँकि आप यह नहीं जान सकते हैं कि वह विशेष खिलाड़ी खिलाड़ी से कैसे संबंधित है - खिलाड़ी के सापेक्ष मूल्यों का उपयोग करना बेहतर है। इस फ़ाइल को कमांड लाइन से चलाएं और देखें कि क्या होता है।

आपको यह देखना चाहिए कि खिलाड़ी के शरीर में पानी पहुंचने के बाद जमीन का एक छोटा क्षेत्र पत्थर में बदल जाता है। यह बहुत अच्छा नहीं है - आप एक समस्या का कारण बनने के लिए तेजी से चलने में सक्षम हैं। आप इसे बड़ी मात्रा में पानी को भूमि में परिवर्तित करके हल कर सकते हैं। Mc.setBlocks () विधि का अंतिम भाग ब्लॉक आईडी है। एक पत्थर के लिए ब्लॉक आईडी है। आप इसे लकड़ी, घास, या किसी भी चीज़ में बदल सकते हैं। यदि आप चाहते थे, तो आप इसे आसानी से एक जटिल डिजाइन में बदल सकते थे - शायद एक निलंबन पुल!

सुपर माइनिंग बटन

Minecraft-पी-सुपर खान

इस उदाहरण से खनन का छोटा काम हो जाएगा। इसमें एक भौतिक बटन होता है, जिसे दबाए जाने पर, 10 खंडों को काट दिया जाएगा। बटन के साथ शुरू करते हैं। Arduino पर बटन के समान, आपको थोड़ी मात्रा में इलेक्ट्रॉनिक्स की आवश्यकता होगी, जो सभी को एक में मिलना चाहिए बुनियादी स्टार्टर किट क्या आपके Arduino स्टार्टर किट में है? [Arduino शुरुआती]इलेक्ट्रॉनिक घटकों से भरे बॉक्स के साथ सामना करना आसान है। यहां एक गाइड है जो आपको अपनी किट में मिलेगा। अधिक पढ़ें :

  • 1 एक्स ब्रेडबोर्ड
  • 1 एक्स क्षणिक स्विच
  • 1 एक्स 220 ओम अवरोधक
  • महिला> पुरुष जम्पर केबल
  • नर> नर जम्पर केबल

यहाँ सर्किट है:

पाई-बटन-कनेक्शन

इस अवरोधक को "पुल डाउन" रोकनेवाला कहा जाता है। यह सुनिश्चित करने में मदद करता है कि पाई क्या सोचती है कि बटन दबाया जा रहा है, वास्तव में बटन दबाया जा रहा है। आपको इसका उपयोग करने की आवश्यकता नहीं है, हालांकि यह अनुशंसित है, क्योंकि आपको इसके बिना बहुत सारे शोर और झूठी रीडिंग मिल सकती हैं।

बटन जनरल पर्पस इनपुट आउटपुट (GPIO) पिन 14 से जुड़ा है। आप किसी भी GPIO पिन का उपयोग कर सकते हैं, हालाँकि देखें बाहर पिन सबसे पहले, क्योंकि वे पाई से सभी नियंत्रणीय नहीं हैं, और मॉडल के बीच थोड़ा भिन्न होते हैं।

अब जब बटन जुड़ा हुआ है, तो इसे जांचने का समय है एक नई फ़ाइल बनाएं और इसे "button_test.py“. इस कोड को जोड़ें, इसे सहेजें और फिर इसे टर्मिनल में चलाएं।

आरपीआई आयात करें। GPIO के रूप में GPIO। आयात समय GPIO.setmode (GPIO.BCM) # पाई को बताएं कि किस हेडर का उपयोग करना है। GPIO.setup (14, GPIO.IN) # पीआई को बताएं कि यह पिन एक इनपुट है जबकि ट्रू: अगर GPIO.input (14) == ट्रू: # बटन प्रेस प्रिंट की तलाश करें "बटन वर्क!" # लॉग रिजल्ट टाइम। स्लीप (0.5) # वेट 0.5 सेकंड। 

दबाएँ नियंत्रण + सी स्क्रिप्ट बंद करने के लिए। यदि सब कुछ सही ढंग से काम कर रहा है, तो आपको "बटन कार्य" देखना चाहिए टर्मिनल में। ध्यान दें कि कैसे, Minecraft मॉड्यूल की तरह, यह परीक्षण आरपीआई का उपयोग कर रहा है। GPIO और समय मॉड्यूल। ये Pi को हार्डवेयर पिन तक पहुंचने और उपयोगी टाइमिंग फ़ंक्शन प्रदान करने की अनुमति देते हैं।

अब बाकी कोड को पूरा करने देता है। एक नया फ़ाइल बनाएं "super_mine.py“. यहाँ कोड है:

आरपीआई आयात करें। GPIO के रूप में GPIO। आयात का समय। mcpi.minecraft आयात से Minecraft mc = Minecraft.create () # बनाएँ Minecraft Object GPIO.setmode (GPIO.BCM) # Pi को बताएं कि किस हेडर का उपयोग करना है। GPIO.setup (14, GPIO.IN) # पीआई को बताएं कि यह पिन एक इनपुट है, जबकि True: if GPIO.input (14) == True: # बटन प्रेस x, y, z = mc.player.getPos ( ) # खिलाड़ी पढ़ें स्थिति mc.setBlocks (x, y, z, x + 10, y + 10, z + 10, 0) # मेरा 10 ब्लॉक mc.setBlocks (x, y, z, x - 10, y + 10, z - 10, 0) # मेरा 10 ब्लॉक time.sleep (0.5) # प्रतीक्षा 0.5 सेकंड। 

mc.player.getPos () खिलाड़ियों को वर्तमान निर्देशांक लौटाता है, जो तब x, y, और z में संग्रहीत किया जाता है। setBlocks () विधि निम्नलिखित ब्लॉक के साथ प्रारंभ और अंत के बीच सभी ब्लॉकों को भरने के लिए Minecraft को बताती है। शून्य हवा के लिए ब्लॉक-आईडी है। आप इसे किसी अन्य ब्लॉक-आईडी में बदलकर ठोस क्षेत्र में बदल सकते हैं। आप निर्देशांक को +100 या यहां तक ​​कि +1000 ब्लॉकों में भी बदल सकते हैं, हालांकि यदि आप बहुत पागल हो जाते हैं, तो पाई संघर्ष करना शुरू कर सकता है। ध्यान दें कि दोनों लाइनों के लिए y + 10 समान कैसे है। अगर आप ब्लॉक को हटाना चाहते हैं तो आप इसे y - 10 में बदल सकते हैं।

teleporting

Minecraft-पी-Teleporting

इस बटन के लिए एक और सरल उपयोग "teleport" हो सकता है। Minecraft Pi Api खिलाड़ी की स्थिति निर्धारित करने का एक तरीका प्रदान करता है। निम्नलिखित कोड एक पूर्व निर्धारित स्थान पर खिलाड़ी को "टेलीपोर्ट" करेगा:

mc.player.setPos (0, 0, 0)

ध्यान दें कि उसकी विधि तीन मापदंडों को स्वीकार करती है; x, y, और z - ताकि आप इन्हें उस स्थान पर खिलाड़ी को तुरंत टेलीपोर्ट करने के लिए कुछ भी सेट कर सकें।

Super_mine फ़ाइल की एक प्रति बनाएँ (फ़ाइल> इस रूप में कॉपी सहेजें) और निम्नलिखित के साथ अगर बदलकर इसे संशोधित करें:

अगर GPIO.input (14) == सही: # बटन प्रेस के लिए देखें mc.player.setPos (0, 0, 0) # teleport खिलाड़ी time.sleep (0.5) # 0.5 सेकंड प्रतीक्षा करें। 

यह फ़ाइल अब इस तरह दिखनी चाहिए:

आरपीआई आयात करें। GPIO के रूप में GPIO। mcpi.minecraft आयात से Minecraft। आयात समय mc = Minecraft.create () # बनाएँ Minecraft Object GPIO.setmode (GPIO.BCM) # पाई को बताएं कि किस हेडर का उपयोग करना है। GPIO.setup (14, GPIO.IN) # पीआई को बताएं कि यह पिन एक इनपुट है जबकि True: if GPIO.input (14) == True: # बटन दबाएं mc.player.setPos (0, 0, 0) # टेलीपोर्ट प्लेयर समय। स्लीप (0.5) # प्रतीक्षा 0.5 सेकंड। 

इसे "teleport.py" और भाग खड़ा हुआ।

हो सकता है कि आपको इसका उपयोग करते समय खिलाड़ी कुछ ब्लॉकों के अंदर फंस गया हो, जिस स्थिति में आपको इसकी आवश्यकता होगी एक ज्ञात खुली जगह के निर्देशांक को समायोजित करें (स्क्रीन के ऊपर बाईं ओर आपका वर्तमान दिखाता है स्थान)।

घर बनाना

Minecraft-पी-हाउस

इस बटन का एक अंतिम कार्य घर बनाना है। ऊपर दिए गए त्वरित-खनन उदाहरण की तरह, यह बस एक घर बनाने के लिए खिलाड़ी के आसपास के ब्लॉकों को बदल देगा। विभिन्न सामग्रियों (खिड़की, दीवारों आदि) के लिए अलग-अलग ब्लॉक-आईडी का उपयोग किया जाएगा। चीजों को कोड करना आसान बनाने के लिए, एक ठोस ब्लॉक बनाया जाएगा, और फिर अंदर हटा दिया गया (सेट ब्लॉक टू एयर), यह एक खोखला शेल बनाएगा। आप एक बिस्तर या दरवाजे की तरह अतिरिक्त जोड़ सकते हैं, हालांकि Minecraft Pi परियोजना थोड़ी अधूरी है, और जब ये खिलाड़ी खिलाड़ी द्वारा रखे गए काम करते हैं, तो वे पायथन का उपयोग करते समय शानदार नहीं होते हैं।

mcpi.minecraft आयात से Minecraft। आरपीआई आयात करें। GPIO के रूप में GPIO। आयात समय mc = Minecraft.create () # बनाएँ Minecraft Object GPIO.setmode (GPIO.BCM) # पाई को बताएं कि किस हेडर का उपयोग करना है। GPIO.setup (14, GPIO.IN) # पी को बताएं कि यह पिन एक इनपुट है, जबकि True: if GPIO.input (14) == True: x, y, z = mc.player.getPos () mc.setclocks ( x + 2, y - 1, z + 2, x + 7, y + 3, z + 8, 5) # शेल mc.setBlocks (x + 3, y, z + 3, x + 6, y + 2, z + 7, 0) को # mc.setBlocks के अंदर निकालें (x + 2, y, z + 5, x + 2, y + 1, z + 5, 0) # द्वार बनाएं mc.setBlocks (x + 4, y + 1, z + 8, x + 5, y + 1, z + 8, 102) # खिड़की बनाओ 1 mc.setBlocks (x + 4, y + 1, z + 2, x + 5, y + 1, z + 2, 102) # खिड़की बनाओ 2 mc.setBlocks (x + 7, y + 1, z + 4, x + 7, y + 1, z + 6, 102) # खिड़की बनाएँ 3. 

इस रूप में सहेजेंhouse.py" और भाग खड़ा हुआ। सब ठीक होने के नाते, आपको एक छोटा घर दिखाई देना चाहिए (आपको इसे खोजने के लिए चारों ओर घूमना पड़ सकता है)। यह बहुत ही सरल है, एक उद्घाटन और कुछ खिड़कियां। सिद्धांत रूप में, आपके द्वारा निर्मित भवन कितने बड़े या जटिल हैं, इसकी कोई सीमा नहीं है।

एक मिनी खेल बनाओ

Minecraft-पी-लावा-खेल

अगला, चलो एक मिनी-गेम बनाते हैं! यह काफी सरल होगा, जब खिलाड़ी रेत के एक ब्लॉक पर कदम रखता है, तो यह एक यादृच्छिक समय के बाद लावा में बदल जाएगा। यह एक अच्छा गेम है, जैसा कि आप अपने स्वयं के स्तर को डिज़ाइन कर सकते हैं या चीजों को कठिन बनाने के लिए इसे संशोधित कर सकते हैं। आपको इस उदाहरण के लिए बटन की आवश्यकता नहीं होगी।

एक नई फ़ाइल बनाएं और इसे "mini_game.py“. यहाँ कोड है:

mcpi.minecraft आयात से Minecraft। यादृच्छिक आयात करें। आयात समय mc = Minecraft.create () # Minecraft Object बनाएं जबकि True: x, y, z = mc.player.getPos () block_under_player = mc.getBlock (x, y - 1, z) यदि block_under_player == 12: # खिलाड़ी रेत पर खड़ा है, टाइमर random_time = random.uniform (0.1, 2.5) शुरू करें # यादृच्छिक संख्या time.sleep उत्पन्न करें। (Random_time); # प्रतीक्षा mc.setBlock (x, y - 1, z, 11) # इसे लावा में बदल दें। 

इस कोड पर एक अच्छा स्टार्टर है यादृच्छिक () समारोह: random.uniform (0.1, 2.5) 0.1 (1/10 सेकंड) और 2.5 (2 1/2 सेकंड) के बीच एक यादृच्छिक संख्या उत्पन्न करेगा। इन संख्याओं को बढ़ाने से खेल आसान हो जाएगा।

कोशिश करके देखो! रेत के एक ब्लॉक पर खड़े हो जाओ, और यह जल्द ही लावा में बदल जाएगा। यह अधिक जटिल खेल का आधार हो सकता है।

एक और मिनी गेम बनाओ

Minecraft-पी-मिनी-खेल

इस खेल का आधार सरल है - समय समाप्त होने पर लकड़ी के फर्श पर खड़ा नहीं होना चाहिए। खिलाड़ी को एक "क्षेत्र" में टेलीपोर्ट किया जाता है। खेल शुरू होने तक वे खड़े रहने के लिए मजबूर हैं। एक बार शुरू होने के बाद, टाइमर से बाहर निकलते ही फर्श पानी में बदल जाएगा। खिलाड़ी को जीवित रहने के लिए सुरक्षित क्षेत्र (डायमंड ब्लॉक) में खड़ा होना चाहिए। प्रत्येक स्तर टाइमर को एक सेकंड से कम कर देता है। प्रत्येक सफल स्तर के बाद सुरक्षित क्षेत्र बड़ा हो जाता है। नीचे दिए गए कोड को देखें:

आयात का समय। यादृच्छिक आयात करें। mcpi.minecraft आयात से Minecraft mc = Minecraft.create () # Minecraft ऑब्जेक्ट # स्पष्ट क्षेत्र बनाएं। mc.setBlocks (-10, 1, -10, 25, 5, 25, 0) # अखाड़ा खोल बनाएं। mc.setBlocks (0, 0, 0, 25, 10, 25, 17) # खोखला अखाड़ा। mc.setBlocks (1, 1, 1, 24, 10, 24, 0) # खिलाड़ी को अखाड़े में ले जाएं। mc.player.setPos (14, 25, 20) # टेलीपोर्ट खिलाड़ी # उन्हें लगाते हैं। # teleport खिलाड़ी हर 1/10 वें सेकंड में स्थिति शुरू करने के लिए। # 5 सेकंड के लिए ऐसा करें फिर खेल शुरू करें। time.sleep (2) कुल_वाइट = ०। mc.postToChat ("प्रतीक्षा की शुरुआत") जबकि Total_wait <5: mc.player.setPos (14, 1, 20) # teleport खिलाड़ी time.sleep (0.1) total_wait + = 0.1 mc.postToChat ("BEGIN!" # 10 स्तर रेंज में स्तर के लिए (10): x, y, z = mc.player.getPos () level_time = 10 - स्तर # प्रत्येक स्तर mc.postToChat के लिए 1 सेकंड से कम समय ("स्तर -" + str (स्तर + 1) + "प्रारंभ") # बिल्ड फ़्लोर mc.setBlocks (0, 0, 0, 25, 0, 25, 17) # सुरक्षित क्षेत्र को सुरक्षित बनाएं_अरिया_स्टार्ट = रैंडम.निफ़ॉर्म (0, 22) सुरक्षित-यार_एंड = random.uniform (0, 22) mc.setBlocks (safe_area_start, 0, safe_area_end, safe_area_start + स्तर, 0, safe_area_end + स्तर, 57, elapsed_time = 0 जबकि elapsed_time <10: x, y, z = mc.player.getPos () time.sleep (0.25) elapsed_time + = 0.25 # चेक प्लेयर अभी भी फर्श पर है अगर y <0.75: mp .postToChat ("गेम" तोड़ने पर; और: # मंजिल निकालें mc.setBlocks (-10, 0, -10, 25, 0, 25, 8) # सुरक्षित क्षेत्र वापस mc.setBlocks डालें (safe_area_start, 0, safe_area_end, safe_area_start + स्तर, 0, safe_area_end + स्तर, 57) time.sleep (2.5) ब्रेक जारी रखें।

इस रूप में सहेजेंmini_game_2.py"और इसे एक रन दें।

Pi 2 में Minecraft चलाने के दौरान कुछ प्रदर्शन मुद्दे हैं। सेंट्रल प्रोसेसिंग यूनिट (सीपीयू) उपयोग ग्राफ (ऊपरी दायां किनारा) कभी कोई भारी भार नहीं दिखाता है, इसलिए यह डेवलपर्स द्वारा खराब डिजाइन और अनुकूलन के लिए नीचे होना चाहिए। ये मुद्दे रनिंग कोड से संबंधित नहीं हैं (जैसा कि वे जारी रखते हैं जब पायथन चल नहीं रहा है), हालांकि वे इस मिनी गेम से कंपाउंडेड हैं। यदि आपका पाई वास्तव में संघर्ष कर रहा है तो आप अखाड़े के आकार को कम करना चाहते हैं या कर सकते हैं अपने पाई को ओवरक्लॉक करें पर्याप्त रस नहीं? ओवरक्लॉकिंग द्वारा अपना रास्पबेरी पाई निचोड़ेंअगर 2012 में कोई हार्डवेयर जारी किया गया है, जिसके साथ आप प्यार में पड़ने की संभावना रखते हैं, तो यह मीठा-के रूप में चीनी रास्पबेरी पाई, एक मिनी कंप्यूटर है जिसे यूके में डिज़ाइन किया गया है और बनाया गया है, जो चारों ओर भेज दिया गया है ... अधिक पढ़ें .

डायमंड डिटेक्टर

Minecraft-पी-हीरे

चलो एक और सर्किट बनाते हैं। यह एक प्रकाश उत्सर्जक डायोड (एलईडी) का उपयोग करेगा जब प्रकाश नीचे (15 ब्लॉकों के भीतर) हीरे हों। यहाँ आपको क्या चाहिए:

  • 1 एक्स ब्रेडबोर्ड
  • 1 एक्स एलईडी
  • 1 एक्स 220 ओम अवरोधक
  • महिला> पुरुष जम्पर केबल
  • नर> नर जम्पर केबल

यहाँ सर्किट है:

पी-एलईडी-कनेक्शन

एनपीओ पिन 14 को एनोड (लंबे पैर) से कनेक्ट करें। यह पिन + 5v की तरह कार्य करता है। कैथोड (छोटा पैर) को जमीन से कनेक्ट करें।

मैंने एक सस्ते अयस्क के खिलौने का उपयोग किया है और इसे रियर कवर और इलेक्ट्रॉनिक्स को हटाकर संशोधित किया है, मैंने फिर इसके नीचे एक एलईडी रखा। आप इसे आसानी से गर्म गोंद या कुछ इसी तरह के साथ बना सकते हैं।

Minecraft-अयस्क-खिलौना

इस कोड को "diamonds.py“:

आरपीआई आयात करें। GPIO के रूप में GPIO। आयात का समय। mcpi.minecraft आयात से Minecraft mc = Minecraft.create () # बनाएँ Minecraft Object led_pin = 14 # GPIO पिन नंबर GPIO.setmode (GPIO.BCM) स्टोर करें # Pi को बताएं कि किस हेडर का उपयोग करना है। GPIO.setup (14, GPIO.OUT) # पी को बताएं कि यह पिन आउटपुट है, जबकि ट्रू: # अनिश्चित काल के लिए x, y, z = mc.player.getPos () के लिए रेंज में (15): # हर पर देखो तक ब्लॉक करें 15 ब्लॉक करें यदि mc.getBlock (x, y - i, z) == 56: GPIO.output (led_pin, True) # समय पर एलईडी चालू करें। सो जाओ (0.25) # प्रतीक्षा करें GPIO.output (led_pin, झूठी) # बारी एलईडी बंद समय। सो (0.25) # रुको। 

जब खिलाड़ी के नीचे एक हीरे का अयस्क ब्लॉक होता है (15 ब्लॉक के भीतर) तो प्रकाश चमकता है।

क्या आपने Minecraft Pi के साथ कुछ ठंडा किया है? टिप्पणियों में मुझे बताएं कि आपने खेलों में क्या बनाया है या आपने इसे कितना आगे बढ़ाया है।

जो ब्रिटेन के लिंकन विश्वविद्यालय से कंप्यूटर विज्ञान में स्नातक हैं। वह एक पेशेवर सॉफ़्टवेयर डेवलपर है, और जब वह ड्रोन नहीं उड़ा रहा है या संगीत नहीं लिख रहा है, तो उसे अक्सर तस्वीरें लेने या वीडियो बनाने के लिए पाया जा सकता है।