Բովանդակություն:
- Քայլ 1: Ստացեք բոլոր մասերը
- Քայլ 2. Arduino- ի 2.8 դյույմանոց գունավոր ցուցադրում:
- Քայլ 3. Նախագծի կառուցում և փորձարկում:
- Քայլ 4. Խաղի ալգորիթմ
- Քայլ 5. Նախագծի ծածկագիրը
- Քայլ 6: Վերջնական մտքեր և բարելավումներ
![Arduino Touch Tic Tac Toe խաղ. 6 քայլ (նկարներով) Arduino Touch Tic Tac Toe խաղ. 6 քայլ (նկարներով)](https://i.howwhatproduce.com/images/002/image-4304-6-j.webp)
Video: Arduino Touch Tic Tac Toe խաղ. 6 քայլ (նկարներով)
![Video: Arduino Touch Tic Tac Toe խաղ. 6 քայլ (նկարներով) Video: Arduino Touch Tic Tac Toe խաղ. 6 քայլ (նկարներով)](https://i.ytimg.com/vi/dUp6LhUK4Ck/hqdefault.jpg)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:45
![Image Image](https://i.howwhatproduce.com/images/002/image-4304-8-j.webp)
![](https://i.ytimg.com/vi/vXuttFxP_to/hqdefault.jpg)
![Arduino Touch Tic Tac Toe խաղ Arduino Touch Tic Tac Toe խաղ](https://i.howwhatproduce.com/images/002/image-4304-9-j.webp)
![Arduino Touch Tic Tac Toe խաղ Arduino Touch Tic Tac Toe խաղ](https://i.howwhatproduce.com/images/002/image-4304-10-j.webp)
![Arduino Touch Tic Tac Toe խաղ Arduino Touch Tic Tac Toe խաղ](https://i.howwhatproduce.com/images/002/image-4304-11-j.webp)
Հարգելի ընկերներ, բարի գալուստ Arduino- ի հերթական ձեռնարկը: Այս մանրամասն ձեռնարկում մենք պատրաստվում ենք կառուցել Arduino Tic Tac Toe խաղ: Ինչպես տեսնում եք, մենք օգտագործում ենք սենսորային էկրան և խաղում ենք համակարգչի դեմ: Tic Tac Toe- ի նման պարզ խաղը հիանալի ներածություն է խաղերի ծրագրավորման և Արհեստական բանականության համար: Թեև այս խաղում մենք չենք օգտագործի արհեստական բանականության որևէ ալգորիթմ, մենք կհասկանանք, թե ինչու են արհեստական բանականության ալգորիթմները պահանջվում ավելի բարդ խաղերում:
Arduino- ի համար խաղեր մշակելը հեշտ չէ և պահանջում է շատ ժամանակ: Բայց մենք կարող ենք Arduino- ի համար կառուցել մի քանի պարզ խաղեր, քանի որ դա զվարճալի է, և դա թույլ կտա մեզ ուսումնասիրել ծրագրավորման ավելի առաջադեմ թեմաներ, ինչպես արհեստական բանականությունը: Սա հիանալի ուսուցման փորձ է, և վերջում դուք կունենաք գեղեցիկ խաղ երեխաների համար:
Եկեք հիմա կառուցենք այս նախագիծը:
Քայլ 1: Ստացեք բոլոր մասերը
![Image Image](https://i.howwhatproduce.com/images/002/image-4304-13-j.webp)
![](https://i.ytimg.com/vi/IcIY2pWursc/hqdefault.jpg)
![2.8 -ը 2.8 -ը](https://i.howwhatproduce.com/images/002/image-4304-16-j.webp)
Այս նախագծի կառուցման համար անհրաժեշտ մասերը հետևյալն են.
An Arduino Uno ▶
2.8 դյույմանոց սենսորային էկրան ▶
Նախագծի արժեքը շատ ցածր է: Այն ընդամենը 15 դոլար է:
Նախքան այս նախագիծը կառուցելը, խնդրում ենք դիտել իմ պատրաստած տեսանյութը սենսորային էկրանին: Ես կցել եմ այս հրահանգին: Դա կօգնի ձեզ հասկանալ ծածկագիրը և ճշգրտել սենսորային էկրանը:
Քայլ 2. Arduino- ի 2.8 դյույմանոց գունավոր ցուցադրում:
![Image Image](https://i.howwhatproduce.com/images/002/image-4304-15-j.webp)
![](https://i.ytimg.com/vi/IcIY2pWursc/hqdefault.jpg)
Ես գտա այս սենսորային էկրանը banggood.com կայքում և որոշեցի գնել այն, որպեսզի փորձեմ օգտագործել այն իմ որոշ նախագծերում: Ինչպես տեսնում եք, էկրանն էժան է, այն արժե մոտ $ 11:
Ստացեք այստեղ ▶
Theուցադրումն առաջարկում է 320x240 պիքսել թույլատրելիություն և գալիս է որպես վահան, ինչը չափազանց հեշտ է դարձնում կապը Arduino- ի հետ: Ինչպես տեսնում եք, էկրանն օգտագործում է Arduino Uno- ի գրեթե բոլոր թվային և անալոգային կապերը: Այս վահանն օգտագործելիս մեզ մնում է միայն 2 թվային կապում և 1 անալոգային կապում մեր նախագծերի համար: Բարեբախտաբար, ցուցադրումը լավ է աշխատում նաև Arduino Mega- ի հետ, ուստի մենք, երբ ավելի շատ կապում ենք պետք, կարող ենք օգտագործել Arduino Mega- ն Arduino Uno- ի փոխարեն: Unfortunatelyավոք, այս էկրանը չի աշխատում Arduino Due- ի կամ Wemos D1 ESP8266 տախտակի հետ: Վահանի մեկ այլ առավելությունն այն է, որ այն առաջարկում է միկրո SD բնիկ, որը շատ հեշտ է օգտագործել:
Քայլ 3. Նախագծի կառուցում և փորձարկում:
![Նախագծի կառուցում և փորձարկում Նախագծի կառուցում և փորձարկում](https://i.howwhatproduce.com/images/002/image-4304-17-j.webp)
![Նախագծի կառուցում և փորձարկում Նախագծի կառուցում և փորձարկում](https://i.howwhatproduce.com/images/002/image-4304-18-j.webp)
![Նախագծի կառուցում և փորձարկում Նախագծի կառուցում և փորձարկում](https://i.howwhatproduce.com/images/002/image-4304-19-j.webp)
Էկրանը Arduino Uno- ին միացնելուց հետո կարող ենք բեռնել ծածկագիրը և պատրաստ ենք խաղալ:
Սկզբում մենք սեղմում ենք «Սկսել խաղը» կոճակը, և խաղը սկսվում է: Առաջինը խաղում է Arduino- ն: Այնուհետև մենք կարող ենք խաղալ մեր քայլը ՝ պարզապես դիպչելով էկրանին: Arduino- ն այնուհետև կատարում է իր քայլը և այլն: Խաղացողը, ում կհաջողվի հորիզոնական, ուղղահայաց կամ անկյունագծային շարքերում տեղադրել իրենց երեք նշանները, շահում է խաղը: Երբ խաղն ավարտվում է, հայտնվում է Game Over էկրանը: Այնուհետև կարող ենք սեղմել play again կոճակը ՝ խաղը նորից սկսելու համար:
Arduino- ն շատ լավ է խաղում այս խաղում: Այն կհաղթի խաղերի մեծ մասում, կամ եթե դուք շատ լավ խաղացող եք, խաղը կավարտվի ոչ -ոքի: Ես միտումնավոր նախագծեցի այս ալգորիթմը որոշ սխալներ թույլ տալու համար, որպեսզի մարդկային խաղացողին հաղթելու հնարավորություն տամ: Խաղի կոդին ավելացնելով ևս երկու տող, մենք կարող ենք Arduino- ին անհնար դարձնել պարտությունը: Բայց ինչպես կարող է 2 $ չիպը ՝ Arduino պրոցեսորը, ծեծել մարդու ուղեղը: Արդյո՞ք մեր մշակած ծրագիրը խելացի է, քան մարդու ուղեղը:
Քայլ 4. Խաղի ալգորիթմ
![Խաղի ալգորիթմ Խաղի ալգորիթմ](https://i.howwhatproduce.com/images/002/image-4304-20-j.webp)
![Խաղի ալգորիթմ Խաղի ալգորիթմ](https://i.howwhatproduce.com/images/002/image-4304-21-j.webp)
Այս հարցին պատասխանելու համար եկեք նայենք իմ կիրառած ալգորիթմին:
Համակարգիչը միշտ առաջինն է խաղում: Միայն այս որոշումը Arduino- ի համար խաղը շատ ավելի հեշտ է դարձնում հաղթելը: Առաջին քայլը միշտ անկյունային է: Երկրորդ քայլը Arduino- ի համար նույնպես պատահական անկյուն է մնացածից ՝ ընդհանրապես չմտածելով խաղացողի շարժման մասին: Այս պահից սկսած, Arduino- ն նախ ստուգում է, արդյոք խաղացողը կարող է հաղթել հաջորդ քայլում և արգելափակում է այդ քայլը: Եթե խաղացողը չի կարող հաղթել մեկ քայլով, ապա այն խաղարկում է անկյունային, եթե առկա է կամ պատահական ՝ մնացածից: Վերջ, այս պարզ ալգորիթմը կարող է ամեն անգամ հաղթել մարդ խաղացողին կամ վատագույն դեպքում խաղը ոչ -ոքիի կհանգեցնի: Սա ոչ թե tic tac toe խաղի լավագույն ալգորիթմն է, այլ ամենապարզերից մեկը:
Այս ալգորիթմը կարելի է հեշտությամբ իրականացնել Arduino- ում, քանի որ Tic Tac Toe խաղը շատ պարզ է, և մենք հեշտությամբ կարող ենք այն վերլուծել և լուծել: Եթե մենք նախագծում ենք խաղի ծառը, մենք կարող ենք գտնել որոշ հաղթող ռազմավարություններ և հեշտությամբ դրանք իրականացնել կոդի մեջ, կամ մենք կարող ենք թույլ տալ, որ պրոցեսորը հաշվարկի խաղի ծառը իրական ժամանակում և ինքնուրույն ընտրի լավագույն քայլը: Իհարկե, այն ալգորիթմը, որը մենք օգտագործում ենք այս խաղում, շատ պարզ է, քանի որ խաղը շատ պարզ է: Եթե մենք փորձենք նախագծել շախմատի հաղթող ալգորիթմ, նույնիսկ եթե մենք օգտագործում ենք ամենաարագ համակարգիչը, մենք չենք կարող հաշվել խաղի ծառը հազար տարվա ընթացքում: Նման խաղերի համար մեզ այլ մոտեցում է պետք, մեզ պետք են Արհեստական բանականության որոշ ալգորիթմներ և, իհարկե, հսկայական մշակման հզորություն: Այս մասին ավելին ՝ ապագա տեսանյութում:
Քայլ 5. Նախագծի ծածկագիրը
![Codeրագրի ծածկագիրը Codeրագրի ծածկագիրը](https://i.howwhatproduce.com/images/002/image-4304-22-j.webp)
Եկեք արագ նայենք նախագծի ծածկագրին: Մեզ պետք է երեք գրադարան, որպեսզի ծածկագիրը կազմվի:
- Adafruit TFTLCD ՝
- Adafruit GFX ՝
- Սենսորային էկրան ՝
Ինչպես տեսնում եք, նույնիսկ այսպիսի պարզ խաղը պահանջում է ավելի քան 600 տող կոդ: Կոդը բարդ է, այնպես որ ես չեմ փորձի այն բացատրել կարճ ձեռնարկում: Չնայած ձեզ ցույց կտամ Arduino- ի քայլերի ալգորիթմի իրականացումը:
Սկզբում մենք խաղում ենք երկու պատահական անկյունային:
<int firstMoves = {0, 2, 6, 8}; // առաջին հերթին կօգտագործի այս դիրքերը (հաշվիչ = 0; հաշվիչ <4; հաշվիչ ++) // Հաշվեք առաջին քայլերը, որոնք խաղացել են {if (տախտակ [firstMoves [counter]! = 0) // Առաջին քայլը կատարում է մեկը {movesPlayed ++; }} անել {if (շարժումներ <= 2) {int randomMove = random (4); int c = firstMoves [randomMove]; if (տախտակ [c] == 0) {ուշացում (1000); տախտակ [c] = 2; Serial.print (firstMoves [randomMove]); Serial.println (); drawCpuMove (firstMoves [randomMove]); բ = 1; }}
Հաջորդը, յուրաքանչյուր տուրում մենք ստուգում ենք, արդյոք խաղացողը կարող է հաղթել հաջորդ քայլին:
int checkOpponent ()
{if (տախտակ [0] == 1 && տախտակ [1] == 1 && տախտակ [2] == 0) վերադարձ 2; այլապես եթե (տախտակ [0] == 1 && տախտակ [1] == 0 && տախտակ [2] == 1) վերադարձնել 1; այլապես եթե (տախտակ [1] == 1 && տախտակ [2] == 1 && տախտակ [0] == 0) վերադարձնել 0; այլապես, եթե (տախտակ [3] == 1 && տախտակ [4] == 1 && տախտակ [5] == 0) վերադարձնել 5; այլապես, եթե (տախտակ [4] == 1 && տախտակ [5] == 1 && տախտակ [3] == 0) վերադարձնել 3; այլապես եթե (տախտակ [3] == 1 && տախտակ [4] == 0 && տախտակ [5] == 1) վերադարձնել 4; այլապես եթե (տախտակ [1] == 0 && տախտակ [4] == 1 && տախտակ [7] == 1) վերադարձնել 1; այլապես վերադարձնել 100; }
Եթե այո, ապա մենք արգելափակում ենք այդ քայլը, շատ դեպքերում: Մենք չենք արգելափակում բոլոր քայլերը, որպեսզի մարդկային խաղացողին հաղթելու հնարավորություն տանք: Կարո՞ղ եք գտնել, թե որ շարժումներն արգելափակված չեն: Քայլը արգելափակելուց հետո մենք խաղում ենք մնացած անկյուն կամ պատահական քայլ: Դուք կարող եք ուսումնասիրել ծածկագիրը և հեշտությամբ իրականացնել ձեր սեփական աննման ալգորիթմը: Ինչպես միշտ, դուք կարող եք գտնել ծրագրի կոդը, որը կցված է այս ուսանելի:
ՈEՇԱԴՐՈԹՅՈՆ. Քանի որ Banggood- ն առաջարկում է նույն էկրանը երկու տարբեր ցուցադրման վարորդներով, եթե վերը նշված կոդը չի գործում, փոխեք initDisplay գործառույթը հետևյալին
void initDisplay ()
{tft.reset (); tft.begin (0x9341); tft.setRotation (3); }
Քայլ 6: Վերջնական մտքեր և բարելավումներ
![Վերջնական մտքեր և բարելավումներ Վերջնական մտքեր և բարելավումներ](https://i.howwhatproduce.com/images/002/image-4304-23-j.webp)
Ինչպես տեսնում եք, նույնիսկ Arduino Uno- ի միջոցով մենք կարող ենք կառուցել անպարտելի ալգորիթմ պարզ խաղերի համար: Այս նախագիծը հիանալի է, քանի որ այն կառուցելը հեշտ է, և միևնույն ժամանակ հիանալի ներածություն Արհեստական բանականության և խաղերի ծրագրավորման մեջ: Ես կփորձեմ ապագայում Արհեստական բանականության հետ ավելի առաջադեմ նախագծեր կառուցել `օգտագործելով ավելի հզոր Raspberry Pi- ն, այնպես որ մնացեք լարված: Ես կցանկանայի լսել ձեր կարծիքը այս նախագծի վերաբերյալ:
Խնդրում ենք տեղադրել ձեր մեկնաբանությունները ստորև և չմոռանաք հավանել ուսուցանվողը, եթե ձեզ հետաքրքրում է: Շնորհակալություն
Խորհուրդ ենք տալիս:
Python Tic Tac Toe խաղ. 4 քայլ
![Python Tic Tac Toe խաղ. 4 քայլ Python Tic Tac Toe խաղ. 4 քայլ](https://i.howwhatproduce.com/images/001/image-575-j.webp)
Python Tic Tac Toe խաղ. Python tic tac toe խաղ այս խաղը պատրաստված է համակարգչային լեզվով Python- ում օգտագործել են python խմբագիր, որը կոչվում է. Pycharm կարող եք օգտագործել նաև սովորական python կոդի խմբագիր
Էլեկտրոնային խաղ Tic-Tac-Toe խաղ փայտե տուփի մեջ. 5 քայլ
![Էլեկտրոնային խաղ Tic-Tac-Toe խաղ փայտե տուփի մեջ. 5 քայլ Էլեկտրոնային խաղ Tic-Tac-Toe խաղ փայտե տուփի մեջ. 5 քայլ](https://i.howwhatproduce.com/images/006/image-15071-j.webp)
Էլեկտրոնային խաղ Tic-Tac-Toe- ը փայտե տուփի մեջ
Microbit Tic Tac Toe խաղ. 4 քայլ (նկարներով)
![Microbit Tic Tac Toe խաղ. 4 քայլ (նկարներով) Microbit Tic Tac Toe խաղ. 4 քայլ (նկարներով)](https://i.howwhatproduce.com/images/002/image-4608-21-j.webp)
Microbit Tic Tac Toe խաղ. Այս նախագծի համար իմ գործընկերը `@descartez- ը և ես, ստեղծեցինք հիանալի tic tac toe խաղ` օգտագործելով microbits- ի ռադիոակտիվությունը: Եթե նախկինում չեք լսել միկրոբիտների մասին, դրանք հիանալի միկրոկոնտրոլեր են, որոնք նախատեսված են երեխաներին ծրագրավորում սովորեցնելու համար: Նրանք
3D4x խաղ. 3D 4x4x4 Tic-Tac-Toe ՝ 5 քայլ (նկարներով)
![3D4x խաղ. 3D 4x4x4 Tic-Tac-Toe ՝ 5 քայլ (նկարներով) 3D4x խաղ. 3D 4x4x4 Tic-Tac-Toe ՝ 5 քայլ (նկարներով)](https://i.howwhatproduce.com/images/004/image-9047-8-j.webp)
3D4x խաղ. 3D 4x4x4 Tic-Tac-Toe. Հոգնե՞լ եք նույն, հին, ձանձրալի, երկչափ tic-tac-toe խաղալուց: Դե, մենք ունենք լուծում ձեզ համար: Tic-tac-toe 3 չափսերով !!! 2 խաղացողների համար, այս 4x4x4 խորանարդում, ստացեք 4 LED անընդմեջ (ցանկացած ուղղությամբ) և շահեք: Դուք հասցնում եք: Դուք պլանավորում եք
Ինչպես կատարել Tic Tac Toe խաղ ՝ օգտագործելով Swift- ը Xcode- ով ՝ 5 քայլ
![Ինչպես կատարել Tic Tac Toe խաղ ՝ օգտագործելով Swift- ը Xcode- ով ՝ 5 քայլ Ինչպես կատարել Tic Tac Toe խաղ ՝ օգտագործելով Swift- ը Xcode- ով ՝ 5 քայլ](https://i.howwhatproduce.com/images/004/image-10378-8-j.webp)
Ինչպես կատարել Tic Tac Toe խաղ ՝ օգտագործելով Swift- ը Xcode- ով. Այս Swift ձեռնարկում ես ձեզ ցույց կտամ, թե ինչպես ստեղծել Tic Tac Toe հավելված: Այս ծրագիրը չափազանց պարզ է և հիանալի նախագիծ է ցանկացած սկսնակի համար: Ես ձեռնարկը կբաժանեմ երեք քայլի ՝ 1. Օբյեկտների ստեղծում 2. Օբյեկտների կապը կոդի հետ 3. Գ