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.
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.
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 :
Il y a cependant une 5ème action qui peut être intéressante à ajouter : attendre et ne pas bouger
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!
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.
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.
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!
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.