विषयसूची:
- चरण 1: सभी भागों को प्राप्त करें
- चरण 2: Arduino के लिए 2.8 "टच कलर डिस्प्ले।
- चरण 3: परियोजना का निर्माण और उसका परीक्षण।
- चरण 4: गेम एल्गोरिथम
- चरण 5: परियोजना का कोड
- चरण 6: अंतिम विचार और सुधार
वीडियो: Arduino Touch Tac Tac Toe Game: 6 चरण (चित्रों के साथ)
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:19
प्रिय दोस्तों एक और Arduino ट्यूटोरियल में आपका स्वागत है! इस विस्तृत ट्यूटोरियल में हम एक Arduino Tic Tac Toe गेम बनाने जा रहे हैं। जैसा कि आप देख सकते हैं, हम एक टच स्क्रीन का उपयोग कर रहे हैं और हम कंप्यूटर के खिलाफ खेल रहे हैं। टिक टैक टो जैसा सरल गेम गेम प्रोग्रामिंग और आर्टिफिशियल इंटेलिजेंस का एक बेहतरीन परिचय है। भले ही हम इस खेल में किसी भी आर्टिफिशियल इंटेलिजेंस एल्गोरिदम का उपयोग नहीं करेंगे, हम समझेंगे कि अधिक जटिल खेलों में आर्टिफिशियल इंटेलिजेंस एल्गोरिदम की आवश्यकता क्यों है।
Arduino के लिए गेम विकसित करना आसान नहीं है और इसमें बहुत समय लगता है। लेकिन हम Arduino के लिए कुछ सरल गेम बना सकते हैं क्योंकि यह मजेदार है और यह हमें आर्टिफिशियल इंटेलिजेंस जैसे कुछ और उन्नत प्रोग्रामिंग विषयों का पता लगाने की अनुमति देगा। यह सीखने का एक शानदार अनुभव है और अंत में आपके पास बच्चों के लिए एक अच्छा खेल होगा!
आइए अब इस परियोजना का निर्माण करें।
चरण 1: सभी भागों को प्राप्त करें
इस परियोजना को बनाने के लिए आवश्यक भाग निम्नलिखित हैं:
एक Arduino Uno ▶
एक 2.8”टच स्क्रीन ▶
परियोजना की लागत बहुत कम है। यह केवल 15$ है।
इस परियोजना को बनाने का प्रयास करने से पहले कृपया वह वीडियो देखें जिसे मैंने टच डिस्प्ले के बारे में तैयार किया है। मैंने इसे इस निर्देशयोग्य में संलग्न किया है। यह आपको कोड को समझने और टच स्क्रीन को कैलिब्रेट करने में मदद करेगा।
चरण 2: Arduino के लिए 2.8 "टच कलर डिस्प्ले।
मैंने इस टच स्क्रीन को banggood.com पर खोजा और अपनी कुछ परियोजनाओं में इसका उपयोग करने के लिए इसे खरीदने का फैसला किया। जैसा कि आप देख सकते हैं कि डिस्प्ले सस्ता है, इसकी कीमत लगभग 11 डॉलर है।
इसे यहाँ प्राप्त करें ▶
डिस्प्ले 320x240 पिक्सल का रिज़ॉल्यूशन प्रदान करता है और यह एक ढाल के रूप में आता है जो Arduino के साथ कनेक्शन को बेहद आसान बनाता है। जैसा कि आप देख सकते हैं, डिस्प्ले Arduino Uno के लगभग सभी डिजिटल और एनालॉग पिन का उपयोग करता है। इस शील्ड का उपयोग करते समय हमारे पास अपनी परियोजनाओं के लिए केवल 2 डिजिटल पिन और 1 एनालॉग पिन बचता है। सौभाग्य से, प्रदर्शन Arduino मेगा के साथ भी ठीक काम करता है, इसलिए जब हमें अधिक पिन की आवश्यकता होती है तो हम Arduino Uno के बजाय Arduino Mega का उपयोग कर सकते हैं। दुर्भाग्य से यह डिस्प्ले Arduino ड्यू या Wemos D1 ESP8266 बोर्ड के साथ काम नहीं करता है। शील्ड का एक अन्य लाभ यह है कि यह एक माइक्रो एसडी स्लॉट प्रदान करता है जिसका उपयोग करना बहुत आसान है।
चरण 3: परियोजना का निर्माण और उसका परीक्षण।
स्क्रीन को Arduino Uno से कनेक्ट करने के बाद, हम कोड लोड कर सकते हैं और हम खेलने के लिए तैयार हैं।
सबसे पहले, हम "स्टार्ट गेम" बटन दबाते हैं और गेम शुरू होता है। Arduino पहले खेलता है। फिर हम केवल स्क्रीन को छूकर अपनी चाल चल सकते हैं। Arduino तब अपनी चाल वगैरह खेलता है। जो खिलाड़ी अपने तीन अंक क्षैतिज, ऊर्ध्वाधर या विकर्ण पंक्ति में रखने में सफल होता है, वह खेल जीत जाता है। जब गेम खत्म हो जाता है, तो गेम ओवर स्क्रीन दिखाई देती है। फिर हम खेल को फिर से शुरू करने के लिए फिर से खेलें बटन दबा सकते हैं।
Arduino इस खेल में बहुत अच्छा है। यह अधिकांश गेम जीतेगा, या यदि आप बहुत अच्छे खिलाड़ी हैं तो गेम ड्रॉ में समाप्त हो जाएगा। मैंने जानबूझकर इस एल्गोरिथम को मानव खिलाड़ी को जीतने का मौका देने के लिए कुछ गलतियाँ करने के लिए डिज़ाइन किया है। गेम के कोड में दो और लाइनें जोड़कर, हम Arduino को गेम को खोना असंभव बना सकते हैं। लेकिन 2$ की चिप, Arduino CPU, मानव मस्तिष्क को कैसे हरा सकती है? क्या हमने जिस प्रोग्राम को विकसित किया है, क्या वह मानव मस्तिष्क से ज्यादा स्मार्ट है?
चरण 4: गेम एल्गोरिथम
इस प्रश्न का उत्तर देने के लिए, आइए उस एल्गोरिथम को देखें जिसे मैंने लागू किया है।
कंप्यूटर हमेशा पहले खेलता है। अकेले यह निर्णय, Arduino के लिए जीत के लिए खेल को बहुत आसान बनाता है। पहला कदम हमेशा एक कोना होता है। Arduino के लिए दूसरा कदम भी खिलाड़ी की चाल की परवाह किए बिना शेष से एक यादृच्छिक कोने है। इस बिंदु से, Arduino पहले जांचता है कि क्या खिलाड़ी अगली चाल में जीत सकता है और उस चाल को अवरुद्ध कर सकता है। यदि खिलाड़ी एक चाल में नहीं जीत सकता है, तो यह उपलब्ध होने पर या शेष से एक यादृच्छिक एक कोने की चाल खेलता है। यही है, यह सरल एल्गोरिथ्म हर बार मानव खिलाड़ी को हरा सकता है या सबसे खराब स्थिति में खेल का परिणाम ड्रॉ होगा। यह सबसे अच्छा टिक टैक टो गेम एल्गोरिथम नहीं है, बल्कि सबसे सरल में से एक है।
इस एल्गोरिथम को Arduino में आसानी से लागू किया जा सकता है, क्योंकि Tic Tac Toe गेम बहुत ही सरल है, और हम आसानी से इसका विश्लेषण कर सकते हैं और इसे हल कर सकते हैं। यदि हम गेम ट्री को डिज़ाइन करते हैं तो हम कुछ जीतने वाली रणनीतियों की खोज कर सकते हैं और उन्हें आसानी से कोड में लागू कर सकते हैं या हम सीपीयू को वास्तविक समय में गेम ट्री की गणना करने दे सकते हैं और अपने आप में सबसे अच्छा कदम चुन सकते हैं। बेशक, इस खेल में हम जिस एल्गोरिथम का उपयोग करते हैं वह बहुत सरल है, क्योंकि खेल बहुत सरल है। यदि हम शतरंज के लिए विजेता एल्गोरिथम डिजाइन करने का प्रयास करते हैं, भले ही हम सबसे तेज कंप्यूटर का उपयोग करें, हम एक हजार वर्षों में गेम ट्री की गणना नहीं कर सकते हैं! इस तरह के खेलों के लिए, हमें एक और दृष्टिकोण की आवश्यकता है, हमें कुछ आर्टिफिशियल इंटेलिजेंस एल्गोरिदम और निश्चित रूप से विशाल प्रसंस्करण शक्ति की आवश्यकता है। इसके बारे में भविष्य के वीडियो में।
चरण 5: परियोजना का कोड
आइए परियोजना के कोड पर एक त्वरित नज़र डालें। कोड को संकलित करने के लिए हमें तीन पुस्तकालयों की आवश्यकता है।
- एडफ्रूट टीएफटीएलसीडी:
- एडफ्रूट जीएफएक्स:
- टचस्क्रीन:
जैसा कि आप देख सकते हैं, इस तरह के एक साधारण गेम के लिए भी कोड की 600 से अधिक पंक्तियों की आवश्यकता होती है। कोड जटिल है, इसलिए मैंने इसे संक्षिप्त ट्यूटोरियल में समझाने की कोशिश नहीं की। हालांकि मैं आपको Arduino चालों के लिए एल्गोरिथम का कार्यान्वयन दिखाऊंगा।
सबसे पहले, हम दो रैंडम कॉर्नर खेलते हैं।
<int firstMoves={0, 2, 6, 8}; // पहले इन पदों का उपयोग करेगा (काउंटर = 0; काउंटर <4; काउंटर ++) // पहले खेले गए चालों की गणना करें {अगर (बोर्ड [फर्स्टमूव्स [काउंटर]! = 0) } } करते हैं { अगर (चाल <= 2) { int randomMove = random (4); इंट सी = फर्स्टमूव्स [रैंडममूव]; अगर (बोर्ड [सी] == 0) {देरी (1000); बोर्ड [सी] = २; सीरियल.प्रिंट (फर्स्टमूव्स [रैंडममूव]); सीरियल.प्रिंट्लन (); drawCpuMove (फर्स्टमूव्स [रैंडममूव]); ख = 1; } }
अगला, प्रत्येक दौर में हम जांचते हैं कि खिलाड़ी अगले कदम में जीत सकता है या नहीं।
इंट चेक विरोधी ()
{ अगर (बोर्ड [0] == 1 && बोर्ड [1] == 1 && बोर्ड [2] == 0) वापसी २; और अगर (बोर्ड [0] == 1 && बोर्ड [1] == 0 && बोर्ड [2] == 1) वापसी १; और अगर (बोर्ड [1] == 1 && बोर्ड [2] == 1 && बोर्ड [0] == 0) वापसी 0; और अगर (बोर्ड [3] == 1 && बोर्ड [4] == 1 && बोर्ड [5] == 0) वापसी ५; और अगर (बोर्ड [४] == १ && बोर्ड [५] ==१&& बोर्ड [३] == ०) रिटर्न ३; और अगर (बोर्ड [3] == 1 && बोर्ड [4] == 0&& बोर्ड [5] == 1) वापसी 4; और अगर (बोर्ड[1]==0 && बोर्ड[4]==1&& बोर्ड[7]==1) रिटर्न 1; अन्यथा 100 लौटाएं; }
यदि हाँ, तो हम उस कदम को अधिकतर बार अवरुद्ध कर देते हैं। मानव खिलाड़ी को जीतने का मौका देने के लिए हम सभी चालों को अवरुद्ध नहीं करते हैं। क्या आप पा सकते हैं कि कौन सी चालें अवरुद्ध नहीं हैं? चाल को अवरुद्ध करने के बाद, हम एक शेष कोने, या एक यादृच्छिक चाल खेलते हैं। आप कोड का अध्ययन कर सकते हैं, और अपने स्वयं के अपराजेय एल्गोरिदम को आसानी से लागू कर सकते हैं। हमेशा की तरह आप इस निर्देश पर संलग्न परियोजना का कोड पा सकते हैं।
नोट: चूंकि बैंगगूड दो अलग-अलग डिस्प्ले ड्राइवरों के साथ एक ही डिस्प्ले प्रदान करता है, यदि उपरोक्त कोड काम नहीं करता है, तो initDisplay फ़ंक्शन को निम्न में बदलें:
शून्य initDisplay ()
{tft.reset (); tft.begin (0x9341); tft.setRotation(3); }
चरण 6: अंतिम विचार और सुधार
जैसा कि आप देख सकते हैं, यहां तक कि एक Arduino Uno के साथ, हम साधारण गेम के लिए एक अपराजेय एल्गोरिदम बना सकते हैं। यह प्रोजेक्ट बहुत अच्छा है, क्योंकि इसे बनाना आसान है, और साथ ही आर्टिफिशियल इंटेलिजेंस और गेम प्रोग्रामिंग के लिए एक बेहतरीन परिचय है। मैं भविष्य में अधिक शक्तिशाली रास्पबेरी पाई का उपयोग करके आर्टिफिशियल इंटेलिजेंस के साथ कुछ और उन्नत प्रोजेक्ट बनाने की कोशिश करूंगा, इसलिए बने रहें! मुझे इस परियोजना के बारे में आपकी राय जानना अच्छा लगेगा।
कृपया अपनी टिप्पणी नीचे पोस्ट करें और यदि आपको दिलचस्प लगे तो निर्देश को पसंद करना न भूलें। धन्यवाद!
सिफारिश की:
Howto: रास्पबेरी पीआई 4 हेडलेस (वीएनसी) आरपीआई-इमेजर और चित्रों के साथ स्थापित करना: 7 चरण (चित्रों के साथ)
कैसे करें: आरपीआई-इमेजर और पिक्चर्स के साथ रास्पबेरी पीआई 4 हेडलेस (वीएनसी) स्थापित करना: मैं अपने ब्लॉग में मजेदार परियोजनाओं के एक समूह में इस रैप्सबेरी पीआई का उपयोग करने की योजना बना रहा हूं। जांचने के लिए स्वतंत्र हैं। मैं अपने रास्पबेरी पीआई का उपयोग करने में वापस आना चाहता था लेकिन मेरे पास मेरे नए स्थान पर कीबोर्ड या माउस नहीं था। जब से मैंने रास्पबेरी की स्थापना की थी, तब तक कुछ समय हो गया था
DIY Arduino Tic Toc Toe Game: 6 कदम (चित्रों के साथ)
DIY Arduino Tic Toc Toe Game: टिक टीएसी को पैर की अंगुली का खेल एक दो खिलाड़ी क्लासिक गेम है। यह मजेदार हो जाता है जब आप इसे अपने बच्चों, परिवार और दोस्तों के साथ खेलते हैं। यहाँ मैंने दिखाया है कि Arduino Uno, पुश बटन और पिक्सेल LED का उपयोग करके टिक टैक टो गेम कैसे बनाया जाता है। यह Arduino आधारित 4 बाय 4 टिक टैक टो
Arduino Uno के साथ ध्वनिक उत्तोलन चरण-दर-चरण (8-चरण): 8 चरण
Arduino Uno के साथ ध्वनिक उत्तोलन चरण-दर-चरण (8-चरण): अल्ट्रासोनिक ध्वनि ट्रांसड्यूसर L298N डीसी महिला एडाप्टर बिजली की आपूर्ति एक पुरुष डीसी पिन के साथ Arduino UNOBreadboardयह कैसे काम करता है: सबसे पहले, आप Arduino Uno पर कोड अपलोड करते हैं (यह डिजिटल से लैस एक माइक्रोकंट्रोलर है और कोड (C++) कन्वर्ट करने के लिए एनालॉग पोर्ट
आसान चरणों और चित्रों के साथ कंप्यूटर को कैसे अलग करें: 13 चरण (चित्रों के साथ)
आसान चरणों और चित्रों के साथ कंप्यूटर को कैसे अलग करें: यह एक निर्देश है कि कैसे एक पीसी को अलग किया जाए। अधिकांश बुनियादी घटक मॉड्यूलर हैं और आसानी से हटा दिए जाते हैं। हालाँकि यह महत्वपूर्ण है कि आप इसके बारे में संगठित रहें। यह आपको भागों को खोने से बचाने में मदद करेगा, और पुन: संयोजन को आसान बनाने में भी
Arduino और Touchpad Tic Tac Toe: 8 कदम (चित्रों के साथ)
Arduino और Touchpad Tic Tac Toe: या, इनपुट और आउटपुट मल्टीप्लेक्सिंग में एक अभ्यास, और बिट्स के साथ काम करना। और Arduino प्रतियोगिता के लिए एक सबमिशन। यह एक टिक टीएसी को पैर की अंगुली के खेल का एक कार्यान्वयन है जिसमें डिस्प्ले के लिए 3x3 रंग के एलईडी का उपयोग किया जाता है, एक साधारण प्रतिरोधक टचपैड