Mündəricat:
- Addım 1: Bütün hissələri alın
- Addım 2: Arduino üçün 2.8 "Touch Rəngli Ekran
- Addım 3: Layihənin qurulması və sınanması
- Addım 4: Oyun Alqoritmi
- Addım 5: Layihənin kodu
- Addım 6: Son Düşüncələr və Təkmilləşdirmələr
Video: Arduino Touch Tic Tac Toe Oyunu: 6 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
Əziz dostlar, başqa bir Arduino dərsinə xoş gəldiniz! Bu ətraflı təlimatda bir Arduino Tic Tac Toe oyunu quracağıq. Gördüyünüz kimi, bir toxunma ekranı istifadə edirik və kompüterə qarşı oynayırıq. Tic Tac Toe kimi sadə bir oyun, oyun proqramlaşdırma və Süni Zəka üçün əla bir girişdir. Bu oyunda heç bir Süni Zəka Alqoritmindən istifadə etməsək də, daha mürəkkəb oyunlarda Süni Zəka Alqoritmlərinin niyə lazım olduğunu anlayacağıq.
Arduino üçün oyunlar hazırlamaq asan deyil və çox vaxt tələb edir. Ancaq Arduino üçün bəzi sadə oyunlar qura bilərik, çünki əyləncəlidir və süni intellekt kimi daha inkişaf etmiş proqramlaşdırma mövzularını araşdırmağa imkan verəcəkdir. Bu böyük bir öyrənmə təcrübəsidir və sonunda uşaqlar üçün gözəl bir oyun olacaq!
İndi bu layihəni hazırlayaq.
Addım 1: Bütün hissələri alın
Bu layihəni hazırlamaq üçün lazım olan hissələr aşağıdakılardır:
Bir Arduino Uno ▶
2.8 "Sensorlu Ekran ▶
Layihənin dəyəri çox aşağıdır. Cəmi 15 dollardır
Bu layihəni qurmağa cəhd etməzdən əvvəl lütfən toxunma ekranı haqqında hazırladığım videoya baxın. Mən bunu bu təlimata əlavə etdim. Kodu başa düşməyinizə və toxunma ekranını kalibr etməyə kömək edəcək.
Addım 2: Arduino üçün 2.8 "Touch Rəngli Ekran
Bu sensor ekranı banggood.com saytında kəşf etdim və bəzi layihələrimdə istifadə etməyə çalışmaq üçün satın almağa qərar verdim. Gördüyünüz kimi, ekran ucuzdur, təxminən 11 dollara başa gəlir.
Buradan əldə edin ▶
Ekran 320x240 piksel qətnamə təqdim edir və Arduino ilə əlaqəni son dərəcə asanlaşdıran bir qalxan olaraq gəlir. Gördüyünüz kimi, ekran Arduino Uno -nun demək olar ki, bütün rəqəmsal və analog pinlərindən istifadə edir. Bu qalxanı istifadə edərkən, layihələrimiz üçün yalnız 2 rəqəmsal pin və 1 analoq pinlə qalırıq. Xoşbəxtlikdən, ekran Arduino Mega ilə də yaxşı işləyir, buna görə daha çox sancağa ehtiyac duyduğumuz zaman Arduino Uno yerinə Arduino Mega istifadə edə bilərik. Təəssüf ki, bu ekran Arduino Due və ya Wemos D1 ESP8266 lövhəsi ilə işləmir. Qalxanın başqa bir üstünlüyü, istifadəsi çox asan olan bir micro SD yuvası təklif etməsidir.
Addım 3: Layihənin qurulması və sınanması
Ekranı Arduino Uno -ya bağladıqdan sonra kodu yükləyə bilərik və oynamağa hazırıq.
Əvvəlcə "Oyuna Başla" düyməsini basırıq və oyun başlayır. Əvvəlcə Arduino oynayır. Ekrana toxunaraq hərəkətimizi oynaya bilərik. Arduino daha sonra hərəkətini oynayır və s. Üfüqi, şaquli və ya diaqonal olaraq üç işarəni qoymağı bacaran oyunçu oyunu qazanır. Oyun bitdikdən sonra "Oyun bitdi" ekranı görünür. Daha sonra oyuna yenidən başlamaq üçün yenidən oynat düyməsini basa bilərik.
Arduino bu oyunda çox yaxşıdır. Oyunların çoxunu qazanacaq və ya çox yaxşı bir oyunçu olsanız, oyun heç -heçə bitəcək. Bu alqoritmi insan oyunçusuna qazanmaq şansı vermək üçün bəzi səhvlər etmək üçün qəsdən hazırladım. Oyunun koduna daha iki sətir əlavə edərək, Arduinonun oyunu uduzmasını qeyri -mümkün edə bilərik. Bəs 2 dollarlıq bir çip olan Arduino CPU insan beynini necə döyə bilər? İnkişaf etdirdiyimiz proqram insan beynindən daha ağıllıdırmı?
Addım 4: Oyun Alqoritmi
Bu suala cavab vermək üçün tətbiq etdiyim alqoritmə baxaq.
Kompüter həmişə birinci yerdə oynayır. Yalnız bu qərar, oyunu Arduinonun qazanmasını çox asanlaşdırır. İlk hərəkət həmişə bir küncdür. Arduino üçün ikinci hərəkət, oyunçunun hərəkətinə əhəmiyyət vermədən qalanlardan təsadüfi bir küncdür. Bu andan etibarən Arduino əvvəlcə oyunçunun növbəti hərəkətdə qalib gələ biləcəyini yoxlayır və bu hərəkəti bloklayır. Oyunçu tək bir hərəkətdə qalib gələ bilmirsə, əgər varsa küncdən hərəkət edir və ya qalanından təsadüfi. Budur, bu sadə alqoritm hər dəfə insan oyunçusunu məğlub edə bilər və ya ən pis halda oyun heç -heçə ilə nəticələnəcək. Bu ən yaxşı tic tac toe oyun alqoritmi deyil, ən sadələrindən biridir.
Bu alqoritm Arduinoda asanlıqla tətbiq oluna bilər, çünki Tic Tac Toe oyunu çox sadədir və asanlıqla analiz edib həll edə bilərik. Oyun ağacını dizayn etsək, bəzi qalibiyyət strategiyalarını kəşf edə və onları kodda asanlıqla tətbiq edə bilərik və ya CPU -nun oyun ağacını real vaxtda hesablamasına icazə verə bilərik və ən yaxşı hərəkəti özü seçər. Təbii ki, bu oyunda istifadə etdiyimiz alqoritm çox sadədir, çünki oyun çox sadədir. Şahmat üçün qalib bir alqoritm hazırlamağa çalışsaq, ən sürətli kompüterdən istifadə etsək də, min il ərzində oyun ağacını hesablaya bilmərik! Belə oyunlar üçün başqa bir yanaşmaya ehtiyacımız var, bəzi Süni Zəka alqoritmlərinə və əlbəttə ki, böyük emal gücünə ehtiyacımız var. Gələcək videoda bu barədə daha çox məlumat veriləcək.
Addım 5: Layihənin kodu
Layihənin koduna qısa bir nəzər salaq. Kodun tərtib edilməsi üçün üç kitabxanaya ehtiyacımız var.
- Adafruit TFTLCD:
- Adafruit GFX:
- Dokunmatik ekran:
Gördüyünüz kimi, belə sadə bir oyun belə, 600 -dən çox kod xətti tələb edir. Kod mürəkkəbdir, buna görə qısa dərslikdə izah etməyə çalışmayacağam. Sizə Arduino hərəkətləri alqoritminin tətbiqini göstərəcəyəm.
Əvvəlcə iki təsadüfi künc oynayırıq.
<int firstMoves = {0, 2, 6, 8}; // əvvəlcə bu mövqelərdən istifadə edəcək (counter = 0; counter <4; counter ++) // Oynanan ilk hərəkətləri say {if (board [firstMoves [counter]! = 0) // İlk hərəkəti kimsə oynayır {movePlayed ++; }} do {if (Move <= 2) {int randomMove = random (4); int c = firstMoves [randomMove]; if (board [c] == 0) {gecikmə (1000); lövhə [c] = 2; Serial.print (firstMoves [randomMove]); Serial.println (); drawCpuMove (firstMoves [randomMove]); b = 1; }}
Sonra, hər turda oyunçunun növbəti hərəkətdə qalib gələ biləcəyini yoxlayırıq.
int checkOpponent ()
{if (board [0] == 1 && board [1] == 1 && board [2] == 0) qayıt 2; başqa halda (board [0] == 1 && board [1] == 0 && board [2] == 1) 1 qaytar; başqa halda (board [1] == 1 && board [2] == 1 && board [0] == 0) 0 qaytar; başqa halda (board [3] == 1 && board [4] == 1 && board [5] == 0) 5 qaytar; başqa halda (board [4] == 1 && board [5] == 1 && board [3] == 0) qayıt 3; başqa halda (board [3] == 1 && board [4] == 0 && board [5] == 1) qayıt 4; başqa halda (board [1] == 0 && board [4] == 1 && board [7] == 1) 1 qaytar; başqa 100 qaytar; }
Bəli, çox vaxt bu hərəkəti maneə törədirik. İnsan oyunçusuna qazanmaq şansı vermək üçün bütün hərəkətləri maneə törətmirik. Hansı hərəkətlərin bloklanmadığını tapa bilərsinizmi? Hərəkəti maneə törətdikdən sonra qalan bir künc və ya təsadüfi bir hərəkət oynayırıq. Kodu öyrənə və öz rəqibsiz alqoritminizi asanlıqla tətbiq edə bilərsiniz. Həmişə olduğu kimi, bu təlimata əlavə olunan layihənin kodunu tapa bilərsiniz.
Qeyd: Banggood eyni ekranı iki fərqli ekran sürücüsü ilə təqdim etdiyi üçün yuxarıdakı kod işləmirsə, initDisplay funksiyasını aşağıdakı kimi dəyişdirin:
etibarsız initDisplay ()
{tft.reset (); tft.begin (0x9341); tft.setRotation (3); }
Addım 6: Son Düşüncələr və Təkmilləşdirmələr
Gördüyünüz kimi, bir Arduino Uno ilə belə sadə oyunlar üçün misilsiz bir alqoritm qura bilərik. Bu layihə əladır, çünki qurmaq asandır və eyni zamanda Süni intellekt və oyun proqramlaşdırma üçün əla bir girişdir. Gələcəkdə daha güclü Raspberry Pi istifadə edərək Süni Zəka ilə daha inkişaf etmiş layihələr qurmağa çalışacağam, buna görə də bizi izləyin! Bu layihə haqqında fikirlərinizi eşitmək istərdim.
Zəhmət olmasa şərhlərinizi aşağıda yazın və maraqlı olarsa təlimatı bəyənməyi unutmayın. Təşəkkürlər!
Tövsiyə:
Python Tic Tac Toe Oyunu: 4 addım
Python Tic Tac Toe Oyunu: python tic tac toe oyunu bu kompüter bir kompüter dili olan pythonda hazırlanmışdır, adlı bir python redaktorundan istifadə etmişəm: pycharm, normal python kod redaktorundan da istifadə edə bilərsiniz
DIY Arduino Tic Toc Toe Oyunu: 6 addım (şəkillərlə)
DIY Arduino Tic Toc Toe Oyunu: Tic Tac Toe oyunu iki oyunçulu klassik oyundur. Uşaqlarınız, ailəniz və dostlarınızla oynayanda əyləncəli olur. Burada bir Arduino Uno, Push düymələri və Pixel LEDləri istifadə edərək Tic Tac Toe oyununun necə ediləcəyini göstərdim. Bu Arduino 4 -dən 4 -ə qədər Tic Tac Toe -a əsaslanır
Taxta qutuda elektron Tic-Tac-Toe Oyunu: 5 addım
Taxta Elektron Tic-Tac-Toe Oyunu: Salam, komik Tic-Tac-Toe oyununu yeni bir nəşrdə təqdim edirəm. İnternetdə oxşar bir layihə axtardım, amma burada fikir unikaldır. Ümid edirəm :) İndi başlayaq
Microbit Tic Tac Toe Oyunu: 4 Adım (Şəkillərlə birlikdə)
Microbit Tic Tac Toe Oyunu: Bu layihə üçün iş yoldaşım - @descartez və mikrobitlərin radio funksiyasından istifadə edərək zəhmli bir tic tac toe oyunu yaratdıq. Daha əvvəl mikroblar haqqında eşitməmisinizsə, uşaqlara proqramlaşdırma öyrətmək üçün hazırlanmış möhtəşəm bir mikro nəzarətçidirlər. Onlar
Xcode ilə Swift istifadə edərək Tic Tac Toe Oyunu Necə Edilir: 5 Addım
Xcode ilə Swift istifadə edərək Tic Tac Toe Oyunu necə etmək olar: Bu Swift dərsliyində sizə Tic Tac Toe Tətbiqi yaratmağın yollarını göstərəcəyəm. Bu proqram son dərəcə sadədir və hər hansı bir başlanğıc üçün əla bir layihədir. Dərsliyi üç mərhələyə böləcəyəm: 1. Obyektlərin yaradılması 2. Obyektləri koda bağlamaq3. C