Table des matières:
- Étape 1: Obtenez toutes les pièces
- Étape 2: L'écran couleur tactile de 2,8 pouces pour Arduino
- Étape 3: Construire le projet et le tester
- Étape 4: L'algorithme du jeu
- Étape 5: Code du projet
- Étape 6: Réflexions finales et améliorations
Vidéo: Jeu Arduino Touch Tic Tac Toe : 6 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Chers amis, bienvenue dans un autre tutoriel Arduino ! Dans ce tutoriel détaillé, nous allons créer un jeu Arduino Tic Tac Toe. Comme vous pouvez le voir, nous utilisons un écran tactile et nous jouons contre l'ordinateur. Un jeu simple comme Tic Tac Toe est une excellente introduction à la programmation de jeux et à l'intelligence artificielle. Même si nous n'utiliserons aucun algorithme d'intelligence artificielle dans ce jeu, nous comprendrons pourquoi les algorithmes d'intelligence artificielle sont nécessaires dans des jeux plus complexes.
Développer des jeux pour Arduino n'est pas facile et demande beaucoup de temps. Mais nous pouvons créer des jeux simples pour Arduino car c'est amusant et cela nous permettra d'explorer des sujets de programmation plus avancés, comme l'intelligence artificielle. C'est une excellente expérience d'apprentissage et à la fin, vous aurez un bon jeu pour les enfants !
Construisons maintenant ce projet.
Étape 1: Obtenez toutes les pièces
Les pièces nécessaires à la réalisation de ce projet sont les suivantes:
Un Arduino Uno
Un écran tactile de 2,8 pouces ▶
Le coût du projet est très faible. C'est seulement 15$
Avant d'essayer de construire ce projet, veuillez regarder la vidéo que j'ai préparée sur l'écran tactile. Je l'ai joint dans ce instructable. Cela vous aidera à comprendre le code et à calibrer l'écran tactile.
Étape 2: L'écran couleur tactile de 2,8 pouces pour Arduino
J'ai découvert cet écran tactile sur banggood.com et j'ai décidé de l'acheter pour essayer de l'utiliser dans certains de mes projets. Comme vous pouvez le voir, l'affichage est peu coûteux, il coûte environ 11 $.
Obtenez-le ici ▶
L'écran offre une résolution de 320x240 pixels et il se présente sous la forme d'un blindage qui rend la connexion avec Arduino extrêmement facile. Comme vous pouvez le voir, l'écran utilise presque toutes les broches numériques et analogiques de l'Arduino Uno. Lors de l'utilisation de ce bouclier, il ne nous reste que 2 broches numériques et 1 broche analogique pour nos projets. Heureusement, l'affichage fonctionne également bien avec l'Arduino Mega, donc lorsque nous avons besoin de plus de broches, nous pouvons utiliser l'Arduino Mega au lieu de l'Arduino Uno. Malheureusement, cet écran ne fonctionne pas avec la carte Arduino Due ou la carte Wemos D1 ESP8266. Autre avantage du shield, il propose un slot micro SD très simple d'utilisation.
Étape 3: Construire le projet et le tester
Après avoir connecté l'écran à l'Arduino Uno, nous pouvons charger le code et nous sommes prêts à jouer.
Au début, nous appuyons sur le bouton « Démarrer le jeu » et le jeu commence. L'Arduino joue en premier. Nous pouvons alors jouer notre coup simplement en touchant l'écran. L'Arduino joue alors son coup et ainsi de suite. Le joueur qui réussit à placer trois de ses marques sur une ligne horizontale, verticale ou diagonale gagne la partie. Lorsque le jeu est terminé, l'écran Game Over apparaît. Nous pouvons ensuite appuyer sur le bouton play again pour relancer le jeu.
L'Arduino est très bon à ce jeu. Il gagnera la plupart des matchs, ou si vous êtes un très bon joueur, le match se terminera par un match nul. J'ai intentionnellement conçu cet algorithme pour faire des erreurs afin de donner au joueur humain une chance de gagner. En ajoutant deux lignes supplémentaires au code du jeu, nous pouvons rendre l'Arduino impossible à perdre. Mais comment une puce à 2$, le processeur Arduino, peut-elle battre le cerveau humain ? Le programme que nous avons développé est-il plus intelligent que le cerveau humain ?
Étape 4: L'algorithme du jeu
Pour répondre à cette question, regardons l'algorithme que j'ai implémenté.
L'ordinateur joue toujours en premier. Cette décision à elle seule rend le jeu beaucoup plus facile à gagner pour l'Arduino. Le premier mouvement est toujours un virage. Le deuxième mouvement pour l'Arduino est également un coin aléatoire du reste sans se soucier du tout du mouvement du joueur. À partir de ce moment, l'Arduino vérifie d'abord si le joueur peut gagner au prochain coup et bloque ce mouvement. Si le joueur ne peut pas gagner en un seul coup, il joue un coup de coin s'il est disponible ou un coup aléatoire parmi les autres. C'est tout, cet algorithme simple peut battre le joueur humain à chaque fois ou dans le pire des cas, le jeu se soldera par un match nul. Ce n'est pas le meilleur algorithme de jeu de tic tac toe, mais l'un des plus simples.
Cet algorithme peut être facilement implémenté dans Arduino, car le jeu Tic Tac Toe est très simple, et nous pouvons facilement l'analyser et le résoudre. Si nous concevons l'arbre du jeu, nous pouvons découvrir des stratégies gagnantes et les implémenter facilement dans le code ou nous pouvons laisser le processeur calculer l'arbre du jeu en temps réel et choisir le meilleur coup par lui-même. Bien sûr, l'algorithme que nous utilisons dans ce jeu est très simple, car le jeu est très simple. Si nous essayons de concevoir un algorithme gagnant pour les échecs, même si nous utilisons l'ordinateur le plus rapide, nous ne pourrons pas calculer l'arbre du jeu en mille ans ! Pour des jeux comme celui-ci, nous avons besoin d'une autre approche, nous avons besoin d'algorithmes d'intelligence artificielle et bien sûr d'une puissance de traitement énorme. Plus à ce sujet dans une future vidéo.
Étape 5: Code du projet
Examinons rapidement le code du projet. Nous avons besoin de trois bibliothèques pour que le code soit compilé.
- Adafruit TFTLCD:
- Adafruit GFX:
- Écran tactile:
Comme vous pouvez le voir, même un jeu simple comme celui-ci, nécessite plus de 600 lignes de code. Le code est complexe, je n'essaierai donc pas de l'expliquer dans un court tutoriel. Je vais cependant vous montrer l'implémentation de l'algorithme pour les mouvements Arduino.
Au début, nous jouons deux coins aléatoires.
<int firstMoves={0, 2, 6, 8}; // utilisera ces positions en premier pour(counter=0;counter<4;counter++) //Compter les premiers coups joués { if(board[firstMoves[counter]!=0) // Le premier coup est joué par quelqu'un { movePlayed++; } } do{ if(moves<=2) { int randomMove =random(4); int c=firstMoves[randomMove]; if (board[c]==0) { delay(1000); planche[c]=2; Serial.print(firstMoves[randomMove]); Serial.println(); drawCpuMove(firstMoves[randomMove]); b=1; } }
Ensuite, à chaque tour, nous vérifions si le joueur peut gagner au prochain coup.
int checkOpposant()
{ if(board[0]==1 && board[1]==1 && board[2]==0) return 2; else if(board[0]==1 && board[1]==0 && board[2]==1) return 1; else if (board[1]==1 && board [2]==1 && board[0]==0) return 0; else if (board[3]==1 && board[4]==1 && board[5]==0) return 5; else if (board[4]==1 && board[5]==1&& board[3]==0) return 3; else if (board[3]==1 && board[4]==0&& board[5]==1) return 4; else if (board[1]==0 && board[4]==1&& board[7]==1) return 1; sinon renvoie 100; }
Si oui, nous bloquons ce mouvement, la plupart du temps. Nous ne bloquons pas tous les mouvements afin de donner au joueur humain une chance de gagner. Pouvez-vous trouver quels mouvements ne sont pas bloqués ? Après avoir bloqué le coup, on joue un corner restant, ou un coup aléatoire. Vous pouvez étudier le code et implémenter facilement votre propre algorithme imbattable. Comme toujours, vous pouvez trouver le code du projet joint sur cette instructable.
REMARQUE: Étant donné que Banggood propose le même écran avec deux pilotes d'affichage différents, si le code ci-dessus ne fonctionne pas, modifiez la fonction initDisplay comme suit:
void initDisplay()
{ tft.reset(); tft.begin (0x9341); tft.setRotation(3); }
Étape 6: Réflexions finales et améliorations
Comme vous pouvez le voir, même avec un Arduino Uno, nous pouvons construire un algorithme imbattable pour des jeux simples. Ce projet est génial, car il est facile à construire et en même temps une excellente introduction à l'intelligence artificielle et à la programmation de jeux. J'essaierai de construire des projets plus avancés avec l'intelligence artificielle à l'avenir en utilisant le Raspberry Pi plus puissant, alors restez à l'écoute ! J'aimerais avoir votre avis sur ce projet.
Veuillez poster vos commentaires ci-dessous et n'oubliez pas d'aimer l'instructable si vous trouvez intéressant. Merci!
Conseillé:
Contrôleur de jeu DIY basé sur Arduino - Contrôleur de jeu Arduino PS2 - Jouer à Tekken avec la manette de jeu DIY Arduino : 7 étapes
Contrôleur de jeu DIY basé sur Arduino | Contrôleur de jeu Arduino PS2 | Jouer à Tekken avec la manette de jeu DIY Arduino : Bonjour les gars, jouer à des jeux est toujours amusant, mais jouer avec votre propre contrôleur de jeu personnalisé DIY est plus amusant. Nous allons donc créer un contrôleur de jeu utilisant arduino pro micro dans cette instructables
Jeu Microbit Tic Tac Toe : 4 étapes (avec photos)
Microbit Tic Tac Toe Game : Pour ce projet, mon collègue - @descartez et moi avons créé un jeu de tic tac toe génial en utilisant la fonctionnalité radio des microbits. Si vous n'avez jamais entendu parler des microbits auparavant, il s'agit d'un microcontrôleur génial conçu pour enseigner la programmation aux enfants. Ils
Jeu 3D4x : 3D 4x4x4 Tic-Tac-Toe : 5 étapes (avec photos)
Jeu 3D4x : 3D 4x4x4 Tic-Tac-Toe : Êtes-vous fatigué de jouer le même, vieux, ennuyeux, tic-tac-toe en 2 dimensions ?? Eh bien, nous avons la solution pour vous! Tic-tac-toe en 3 dimensions !!! Pour 2 joueurs, dans ce cube 4x4x4, obtenez 4 LED d'affilée (dans n'importe quelle direction) et vous gagnez ! Tu l'as fait. Vous pla
Comment faire un jeu de tic tac toe en utilisant Swift avec Xcode : 5 étapes
Comment faire un jeu Tic Tac Toe en utilisant Swift avec Xcode : Dans ce tutoriel Swift, je vais vous montrer comment créer une application Tic Tac Toe. Cette application est extrêmement simple et constitue un excellent projet pour tout débutant. Je vais diviser le tutoriel en trois étapes : 1. Création des objets2. Lier des objets dans le code3. Le c
Jeu interactif de Tic-Tac Toe contrôlé avec Arduino : 6 étapes
Jeu interactif de tic-tac-toe contrôlé par Arduino : l'objectif du projet physique de tic-tac-toe est de déplacer un jeu bien connu dans le domaine physique. A l'origine, le jeu se joue à deux joueurs sur une feuille de papier - en mettant les symboles "X" et "O" à tour de rôle. Notre idée était d’examiner le comportement des joueurs