विषयसूची:

Arduino Touch Tac Tac Toe Game: 6 चरण (चित्रों के साथ)
Arduino Touch Tac Tac Toe Game: 6 चरण (चित्रों के साथ)

वीडियो: Arduino Touch Tac Tac Toe Game: 6 चरण (चित्रों के साथ)

वीडियो: Arduino Touch Tac Tac Toe Game: 6 चरण (चित्रों के साथ)
वीडियो: Arduino TIC TAC Game || Arduino TFT LCD TIC TAC Game || 2.4 Inch TFT LCD Uno Shield || Arduino Tamil 2024, दिसंबर
Anonim
Image
Image
Arduino टच टिक टैक टो गेम
Arduino टच टिक टैक टो गेम
Arduino टच टिक टैक टो गेम
Arduino टच टिक टैक टो गेम
Arduino टच टिक टैक टो गेम
Arduino टच टिक टैक टो गेम

प्रिय दोस्तों एक और Arduino ट्यूटोरियल में आपका स्वागत है! इस विस्तृत ट्यूटोरियल में हम एक Arduino Tic Tac Toe गेम बनाने जा रहे हैं। जैसा कि आप देख सकते हैं, हम एक टच स्क्रीन का उपयोग कर रहे हैं और हम कंप्यूटर के खिलाफ खेल रहे हैं। टिक टैक टो जैसा सरल गेम गेम प्रोग्रामिंग और आर्टिफिशियल इंटेलिजेंस का एक बेहतरीन परिचय है। भले ही हम इस खेल में किसी भी आर्टिफिशियल इंटेलिजेंस एल्गोरिदम का उपयोग नहीं करेंगे, हम समझेंगे कि अधिक जटिल खेलों में आर्टिफिशियल इंटेलिजेंस एल्गोरिदम की आवश्यकता क्यों है।

Arduino के लिए गेम विकसित करना आसान नहीं है और इसमें बहुत समय लगता है। लेकिन हम Arduino के लिए कुछ सरल गेम बना सकते हैं क्योंकि यह मजेदार है और यह हमें आर्टिफिशियल इंटेलिजेंस जैसे कुछ और उन्नत प्रोग्रामिंग विषयों का पता लगाने की अनुमति देगा। यह सीखने का एक शानदार अनुभव है और अंत में आपके पास बच्चों के लिए एक अच्छा खेल होगा!

आइए अब इस परियोजना का निर्माण करें।

चरण 1: सभी भागों को प्राप्त करें

Image
Image
2.8
2.8

इस परियोजना को बनाने के लिए आवश्यक भाग निम्नलिखित हैं:

एक Arduino Uno ▶

एक 2.8”टच स्क्रीन ▶

परियोजना की लागत बहुत कम है। यह केवल 15$ है।

इस परियोजना को बनाने का प्रयास करने से पहले कृपया वह वीडियो देखें जिसे मैंने टच डिस्प्ले के बारे में तैयार किया है। मैंने इसे इस निर्देशयोग्य में संलग्न किया है। यह आपको कोड को समझने और टच स्क्रीन को कैलिब्रेट करने में मदद करेगा।

चरण 2: Arduino के लिए 2.8 "टच कलर डिस्प्ले।

Image
Image
2.8
2.8
2.8
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: परियोजना का कोड

परियोजना का कोड
परियोजना का कोड

आइए परियोजना के कोड पर एक त्वरित नज़र डालें। कोड को संकलित करने के लिए हमें तीन पुस्तकालयों की आवश्यकता है।

  1. एडफ्रूट टीएफटीएलसीडी:
  2. एडफ्रूट जीएफएक्स:
  3. टचस्क्रीन:

जैसा कि आप देख सकते हैं, इस तरह के एक साधारण गेम के लिए भी कोड की 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 के साथ, हम साधारण गेम के लिए एक अपराजेय एल्गोरिदम बना सकते हैं। यह प्रोजेक्ट बहुत अच्छा है, क्योंकि इसे बनाना आसान है, और साथ ही आर्टिफिशियल इंटेलिजेंस और गेम प्रोग्रामिंग के लिए एक बेहतरीन परिचय है। मैं भविष्य में अधिक शक्तिशाली रास्पबेरी पाई का उपयोग करके आर्टिफिशियल इंटेलिजेंस के साथ कुछ और उन्नत प्रोजेक्ट बनाने की कोशिश करूंगा, इसलिए बने रहें! मुझे इस परियोजना के बारे में आपकी राय जानना अच्छा लगेगा।

कृपया अपनी टिप्पणी नीचे पोस्ट करें और यदि आपको दिलचस्प लगे तो निर्देश को पसंद करना न भूलें। धन्यवाद!

सिफारिश की: