L'objectif du jeu est d'affronter deux IA l'une contre l'autre sur un petit foot.
Actuellement, les collisions avec le ballon ont été faite.
La balle va dans le sens qui dépend de la position du joueur au moment de l'impact.
Les rebonds sur les bords ont été fait.
Au niveau des IA, la Q-Table est faite, la table des rewards aussi ainsi que la plupart des fonctions mais
elles n'ont pas encore été testé.
Le menu pour lancer le jeu a été effectué.
Il suffit de presser la barre espace pour lancer le jeu.
Le fond a été fait a l'aide d'un sprite répété sur tout l'écran et les lignes de touches/buts on été fait avec
des SDLRect pour simplifier les calculs lors de la création du terrain.
Un timeur a été implanté pour limiter le temps de jeu.
La gestion du score est faite.
Un écran de fin s'affiche et indique qui a gagné ou indique "Egalité" si tel est le cas.
L'IA est toujours en cours d'implémentation.
Le choix des états et actions.
L'IA a été implanté. Il y a deux IA qui jouent l'une contre l'autre après un entraînement basé sur une QTable
définie de sorte à l'aider un peu à agir comme on veut.
Aujourd'hui, c'était beaucoup de déboggage.
L'objectif de demain est d'entraîner l'IA à partir d'une QTable non forcée.
Ici, les deux IA ont appris à partir d'une QTable vide.
On remarque que les deux IA restent assez équitables entre elles.
Cela est dû au fait que lors de l'apprentissage, la première IA à faire une action est random donc elles
ont un apprentissage quasiment équivalent.
Abdeljalil Zoghlami nous a produit notre bande son (un grand merci à lui !):
Voici une matrice préremplie à la main permettant d'avoir un comportement spécial (ici le joueur suit la balle
et tire quand il est proche d'elle).
On peut par la suite donner cette matrice à la fonction d'apprentissage afin d'affiner les paramètres de la
matrice et d'obtenir un comportement plus propre.
Par rapport à une matrice vide au départ, cette méthode permet d'obtenir un résultat cohérent (dans cet
exemple, le joueur ne peut pas tirer vers le but quand il est situé entre les cages et la balle).
Voici un exemple de jeu avec 4 joueurs.
Chaque joueur à la QTable du joueur entraîné comme précédement en 1vs1.