Spisu treści:
- Krok 1: Zdobądź wszystkie części
- Krok 2: Kolorowy wyświetlacz dotykowy o przekątnej 2,8 cala dla Arduino
- Krok 3: Budowanie projektu i testowanie go
- Krok 4: Algorytm gry
- Krok 5: Kod Projektu
- Krok 6: Ostatnie myśli i ulepszenia
Wideo: Gra Arduino Touch Tic Tac Toe: 6 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
Drodzy przyjaciele, zapraszamy do kolejnego samouczka Arduino! W tym szczegółowym samouczku zamierzamy zbudować grę Arduino Tic Tac Toe. Jak widać, używamy ekranu dotykowego i gramy przeciwko komputerowi. Prosta gra, taka jak Tic Tac Toe, to świetne wprowadzenie do programowania gier i sztucznej inteligencji. Mimo że w tej grze nie będziemy używać żadnych algorytmów sztucznej inteligencji, zrozumiemy, dlaczego algorytmy sztucznej inteligencji są wymagane w bardziej złożonych grach.
Tworzenie gier na Arduino nie jest łatwe i wymaga dużo czasu. Ale możemy zbudować kilka prostych gier dla Arduino, ponieważ jest to zabawne i pozwoli nam zgłębić bardziej zaawansowane tematy programowania, takie jak sztuczna inteligencja. To wspaniałe doświadczenie edukacyjne, a na koniec będziesz mieć fajną grę dla dzieci!
Zbudujmy teraz ten projekt.
Krok 1: Zdobądź wszystkie części
Części potrzebne do zbudowania tego projektu to:
Arduino Uno ▶
Ekran dotykowy 2,8” ▶
Koszt projektu jest bardzo niski. To tylko 15$
Przed przystąpieniem do budowy tego projektu proszę obejrzeć przygotowany przeze mnie film o wyświetlaczu dotykowym. Załączyłem to w tej instrukcji. Pomoże Ci zrozumieć kod i skalibrować ekran dotykowy.
Krok 2: Kolorowy wyświetlacz dotykowy o przekątnej 2,8 cala dla Arduino
Odkryłem ten ekran dotykowy na banggood.com i postanowiłem go kupić, aby spróbować go wykorzystać w niektórych moich projektach. Jak widać, wyświetlacz jest niedrogi, kosztuje około 11 dolarów.
Pobierz tutaj ▶
Wyświetlacz oferuje rozdzielczość 320x240 pikseli i jest wyposażony w osłonę, dzięki czemu połączenie z Arduino jest niezwykle łatwe. Jak widać, wyświetlacz wykorzystuje prawie wszystkie cyfrowe i analogowe piny Arduino Uno. Używając tego nakładki, do naszych projektów pozostają tylko 2 piny cyfrowe i 1 pin analogowy. Na szczęście wyświetlacz działa dobrze również z Arduino Mega, więc gdy potrzebujemy więcej pinów, możemy użyć Arduino Mega zamiast Arduino Uno. Niestety ten wyświetlacz nie współpracuje z płytką Arduino Due ani Wemos D1 ESP8266. Kolejną zaletą osłony jest to, że oferuje gniazdo micro SD, które jest bardzo łatwe w użyciu.
Krok 3: Budowanie projektu i testowanie go
Po podłączeniu ekranu do Arduino Uno możemy wczytać kod i jesteśmy gotowi do gry.
Najpierw wciskamy przycisk „Rozpocznij grę” i gra się rozpoczyna. Arduino gra jako pierwsze. Następnie możemy zagrać nasz ruch po prostu dotykając ekranu. Arduino następnie odtwarza swój ruch i tak dalej. Gracz, któremu uda się umieścić trzy swoje znaki w rzędzie poziomym, pionowym lub ukośnym, wygrywa grę. Po zakończeniu gry pojawi się ekran Game Over. Następnie możemy nacisnąć przycisk Odtwórz ponownie, aby ponownie rozpocząć grę.
Arduino jest bardzo dobre w tej grze. Wygra większość gier lub jeśli jesteś bardzo dobrym graczem, gra zakończy się remisem. Celowo zaprojektowałem ten algorytm, aby popełniać błędy, aby dać graczowi szansę na wygraną. Dodając jeszcze dwie linijki do kodu gry, możemy uniemożliwić Arduino przegranie gry. Ale jak chip za 2 $, procesor Arduino, może pokonać ludzki mózg? Czy program, który opracowaliśmy, jest mądrzejszy niż ludzki mózg?
Krok 4: Algorytm gry
Aby odpowiedzieć na to pytanie, spójrzmy na algorytm, który zaimplementowałem.
Komputer zawsze gra pierwszy. Już sama ta decyzja sprawia, że Arduino znacznie łatwiej wygrywa grę. Pierwszym ruchem jest zawsze rzut rożny. Drugi ruch dla Arduino to również losowy róg od pozostałych, nie dbając w ogóle o ruch gracza. Od tego momentu Arduino najpierw sprawdza, czy gracz może wygrać w kolejnym ruchu i blokuje ten ruch. Jeśli gracz nie może wygrać w jednym ruchu, wykonuje ruch narożny, jeśli jest dostępny, lub losowy z pozostałych. To wszystko, ten prosty algorytm może pokonać człowieka za każdym razem lub w najgorszym przypadku, gdy gra zakończy się remisem. To nie jest najlepszy algorytm gry w kółko i krzyżyk, ale jeden z najprostszych.
Algorytm ten można łatwo zaimplementować w Arduino, ponieważ gra Tic Tac Toe jest bardzo prosta i możemy ją łatwo przeanalizować i rozwiązać. Jeśli zaprojektujemy drzewo gry, możemy odkryć kilka zwycięskich strategii i łatwo zaimplementować je w kodzie lub pozwolić procesorowi na obliczenie drzewa gry w czasie rzeczywistym i samodzielny wybór najlepszego ruchu. Oczywiście algorytm, którego używamy w tej grze jest bardzo prosty, ponieważ gra jest bardzo prosta. Jeśli spróbujemy zaprojektować zwycięski algorytm dla szachów, nawet jeśli użyjemy najszybszego komputera, nie możemy obliczyć drzewa gry za tysiąc lat! W przypadku takich gier potrzebujemy innego podejścia, potrzebujemy algorytmów sztucznej inteligencji i oczywiście ogromnej mocy obliczeniowej. Więcej na ten temat w przyszłym filmie.
Krok 5: Kod Projektu
Rzućmy okiem na kod projektu. Aby kod się skompilował, potrzebujemy trzech bibliotek.
- Adafruit TFTLCD:
- Adafruit GFX:
- Ekran dotykowy:
Jak widać, nawet tak prosta gra, jak ta, wymaga ponad 600 linijek kodu. Kod jest skomplikowany, więc nie będę próbował wyjaśniać go w krótkim tutorialu. Pokażę Ci jednak implementację algorytmu dla ruchów Arduino.
Na początku gramy dwa losowe rzuty rożne.
<int firstMoves={0, 2, 6, 8}; // użyje tych pozycji jako pierwszy for(licznik=0;licznik<4;licznik++) //Policz pierwsze zagrane ruchy { if(board[firstMoves[counter]!=0) // Pierwszy ruch jest zagrany przez kogoś { ruchyGrane++; } } do{ if(ruchy<=2) { int randomMove =random(4); int c=pierwszy ruch[losowy ruch]; if (tablica[c]==0) { delay(1000); deska[c]=2; Serial.print(firstMoves[randomMove]); Serial.println(); drawCpuMove(pierwszy ruch[losowy ruch]); b=1; } }
Następnie w każdej rundzie sprawdzamy, czy gracz może wygrać w kolejnym ruchu.
int checkOponent()
{ if(tablica[0]==1 && tablica[1]==1 && tablica[2]==0) return 2; else if(tablica[0]==1 && tablica[1]==0 && tablica[2]==1) return 1; else if (tablica[1]==1 && tablica [2]==1 && tablica[0]==0) return 0; else if (tablica[3]==1 && tablica[4]==1 && tablica[5]==0) return 5; else if (tablica[4]==1 && tablica[5]==1&& tablica[3]==0) return 3; else if (tablica[3]==1 && tablica[4]==0&& tablica[5]==1) return 4; else if (tablica[1]==0 && tablica[4]==1&& tablica[7]==1) return 1; w przeciwnym razie zwróć 100; }
Jeśli tak, w większości przypadków blokujemy ten ruch. Nie blokujemy wszystkich ruchów, aby dać szansę wygranej ludzkiemu graczowi. Czy potrafisz znaleźć ruchy, które nie są blokowane? Po zablokowaniu ruchu gramy pozostały róg lub losowy ruch. Możesz przestudiować kod i łatwo zaimplementować własny, bezkonkurencyjny algorytm. Jak zawsze możesz znaleźć kod projektu dołączony do tej instrukcji.
UWAGA: Ponieważ Banggood oferuje ten sam wyświetlacz z dwoma różnymi sterownikami ekranu, jeśli powyższy kod nie działa, zmień funkcję initDisplay na następującą:
void initDisplay()
{ tft.reset(); tft.początek (0x9341); tft.setRotation(3); }
Krok 6: Ostatnie myśli i ulepszenia
Jak widać, nawet z Arduino Uno możemy zbudować bezkonkurencyjny algorytm dla prostych gier. Ten projekt jest świetny, ponieważ jest łatwy do zbudowania, a jednocześnie jest świetnym wprowadzeniem do sztucznej inteligencji i programowania gier. W przyszłości spróbuję zbudować bardziej zaawansowane projekty ze sztuczną inteligencją, używając mocniejszego Raspberry Pi, więc bądźcie czujni! Chętnie poznam Twoją opinię na temat tego projektu.
Opublikuj swoje komentarze poniżej i nie zapomnij polubić instrukcji, jeśli uznasz ją za interesującą. Dziękuję!
Zalecana:
DIY Arduino Tic Toc Toe Game: 6 kroków (ze zdjęciami)
DIY Arduino gra w kółko i krzyżyk: gra w kółko i krzyżyk to klasyczna gra dla dwóch graczy. Zabawa staje się zabawą, gdy grasz w nią z dziećmi, rodziną i przyjaciółmi. Tutaj pokazałem, jak zrobić grę w kółko i krzyżyk za pomocą Arduino Uno, przycisków i diod LED Pixel. Ten Arduino oparty 4 na 4 kółko i krzyżyk
Gra Aruduino LED Szybkie klikanie Gra dla dwóch graczy: 8 kroków
Aruduino LED Game Fast Clicking Two Player Game: Ten projekt jest inspirowany @HassonAlkeim. Jeśli chcesz przyjrzeć się bliżej, oto link, który możesz sprawdzić https://www.instructables.com/id/Arduino-Two-Player-Fast-Button-Clicking-Game/. Ta gra jest ulepszoną wersją Alkeima. To jest
Gra Microbit Tic Tac Toe: 4 kroki (ze zdjęciami)
Microbit Tic Tac Toe Game: Na potrzeby tego projektu mój współpracownik @descartez i ja stworzyliśmy niesamowitą grę w kółko i krzyżyk, wykorzystującą funkcję radiową microbitów. Jeśli nie słyszałeś wcześniej o mikrobitach, to niesamowity mikrokontroler przeznaczony do nauki programowania dzieci. Oni
Ostateczna gra komputerowa Simon mówi, że gra: 3 kroki
Finał inżynierii komputerowej Gra Simon Mówi: Mój pomysł: Mój projekt to gra Simon Mówi. W tej grze są cztery diody LED i cztery przyciski. Muzyka będzie odtwarzana z brzęczyka, a diody LED zaświecą się dopasowując się do muzyki. Wtedy rozpocznie się gra. Zaświeci się dioda LED i trzeba kliknąć tyłek
Arduino i touchpad Tic Tac Toe: 8 kroków (ze zdjęciami)
Arduino i tabliczka dotykowa Tic Tac Toe: albo ćwiczenie z multipleksowania wejścia i wyjścia oraz pracy z bitami. Oraz zgłoszenie na konkurs Arduino. Jest to implementacja gry w kółko i krzyżyk wykorzystująca tablicę dwukolorowych diod LED 3x3 na wyświetlaczu, prosty rezystancyjny touchpad