Ressources Magic Makers

 

Site en maintenance

 
Nous sommes actuellement entrain de mettre à jour les ressources de ce site.
Pendant la mise à jour vous pouvez retrouver tous les nouveaux contenus sur le site
 

https://lp-magicmakers.fr/

 
 

Créer les différents modes de jeux

Création des arrières plans

Pour pouvoir entraîner l’IA à jouer au pacman, nous allons mettre en place différents modes de jeux:
  • Le mode jeu libre : où l’on peut jouer tout simplement sans IA
  • Le mode entrainement : où l’on va jouer pour collecter des données et entraîner l’IA
  • Le mode jeu auto : où l’IA une fois entraînée joue toute seule

Pour chacun des ces modes, on va créer un arrière plan différent et selon l’arrière plan affiché, on lancera le mode en question.

Code des différents modes de jeux

Quelque soit le mode de jeu choisit, le fantôme aura le même comportement, par contre les mouvements du pacman seront différents.

On va donc créer différentes fonction de mouvement du pacman pour chacun de ces modes. On verra par la suite comment les coder, pour l’instant on va s’intéresser sur le choix.

Pour cela on va juste utiliser des conditions sur l’arrière plan pour choisir le code à lancer.

Voici à quoi ressemble le code avec les différents modes :

PS : pour accèder au nom de l’arrière plan c’est le même bloc que numéro de l’arrière plan

Au niveau du temps d’attente, envoyer des données ou récupérer une prédiction prends du temps, c’est pour cela qu’il n’est pas nécessaire de rajouter un temps d’attente dans les autres modes de jeu différents de jeu libre.

Récupération des données

Création des catégories

C’est le moment pour nous de créer notre modèle et les différentes catégories de celui-ci.

Chacune des catégories va représenter une des actions possibles du pacman.
Laisse bien ces catégories vides elles vont se remplir quand tu joueras!

On peut imaginer 4 actions de bases :

  • aller vers le haut
  • aller vers le bas
  • aller vers la droite
  • aller vers la gauche

 

Il y a cependant une 5ème action qui peut être intéressante à ajouter : attendre et ne pas bouger

Collecte des données

N’entraîne pas ton projet vas directement dans la partie faire pour récupérer ton projet scratch!

Pour la collecte des données, on va utiliser la fonction mouvement_pacman_entrainement.

L’entrainement va se passer de la même manière qu’une partie en jeu libre, sauf que l’on va ajouter l’enregistrement des données.

Pour cela en plus d’envoyer le message haut, bas, droite ou gauche on va mémoriser cette information là et la stocker dans notre modèle à l’aide du bloc Add training data

On va également compléter chaque variable de notre modèle avec les variables de notre jeu.

Et mettre ce bloc à tous les endroits nécessaires!

Mettre en place le déplacement automatique du PacMan

Entrainer le réseau

Avant tout de chose commence par entrainer ton réseau de neurones.

Tu peux le faire manuellement en allant dans machine learning for kids et en lançant l’entraînement, mais on peut aussi le faire avec le code, comme ça on est sur de ne pas oublier de ré-entraîner notre modèle à chaque fois…

On va mettre ce code dans l’initialisation du jeu : si le mode de jeu est jeu auto, alors on entraîne le modèle.

Coder les mouvements automatiques du pac man

 
Pour coder les mouvements automatiques du pacman, on va utiliser le système de prédiction de l’IA pour savoir quel mouvement faire faire au pacman.

 

Puis on va stocker cette prédiction dans une variable mouvement_pacman

Puis selon le résultat on va pouvoir envoyer le bon message au pacman pour qu’il avance dans la direction choisie.

Enfin tout ce code est regroupé dans la fonction mouvement_pacman_auto et il n’y a plus qu’à tester notre IA !

Améliorer le jeu

Rendre les mouvements du fantôme plus aléatoire

On peut changer la manière de se déplacer du fantôme en tirant un nombre au hasard entre 1 et 10 par exemple, si on tombe sur un 1 il va en haut, sur un 2 il va en bas, sur un 3 il va à gauche, sur un 4 il va à droite et dans tous les autres cas il applique l’algorithme qu’on a codé jusque là.
 
Cela le rends plus imprévisible, il existe plein de manière de complexifier ces choix, à toi de définir la tienne
 
Si ton IA est super forte est gagne à tous les coups, c’est un bon moyen de la challenger en rendant les mouvements du fantôme moins prévisibles.

Deviens le fantôme

Tu peux rajouter un nouveau mode de jeu, ou l’IA joue pacman et toi tu joue le fantôme. Pour cela tu peux ajouter un arrière plan supplémentaire et un nouveau bloc pour jouer manuellement le fantôme!

Éviter l’absence de collision

Tu as peut être remarqué que dans certains cas, le pacman et le fantôme passent l’un à travers l’autre sans pour autant que cela te fasse perdre. Et si on essayait de corriger tout cela.

Si ton IA est super forte est gagne à tous les coups, lui interdire de jouer ces coups peut la rendre bien moins forte.

Indice : pour éviter ce comportement, tu peux dire que le fantôme ne bouge que si il n’est pas sur la même case que le pacman.

PS : Penses à laisser un petit temps à Scratch pour qu’il vérifie la position avant de faire bouger le fantôme.

Changer les points de départ

Tu veux challenger ton IA ?  Et si tu essayais de changer la position de départ du pacman, et/ou celle du fantôme. Est-ce que l’IA est toujours aussi forte ?
 

Rendre le jeu plus fun à jouer et ajouter des effets Wahoo !

Il y a plein de façon d’améliorer ton jeu. Voici quelques idées pour aller plus loin :
  • Ajouter un menu pour choisir le mode de jeu
  • Ajouter de la musique et/ou des sons
  • Ajouter plus animations pour le fantôme et/ou le pacman
  • Ajouter un écran de victoire ou de défaite
  • et pleins d’autres idées que tu trouveras toi même