3.5 KiB
______ __ __ ______ __ __ ______
/\ ___\ /\ "-.\ \ /\ __ \ /\ \/ / /\ ___\
\ \___ \\ \ \-. \\ \ \_\ \\ \ _"-.\ \ __\
\/\_____\\ \_\\"\_\\ \_\ \_\\ \_\ \_\\ \_____\
\/_____/ \/_/ \/_/ \/_/\/_/ \/_/\/_/ \/_____/
INTRODUCTION
C'est un projet de fin de Licence L1 en Informatique à UPEC, la création d'un petit projet en binôme sur la création d'un jeu SNAKE en multijoueur et en affrontement 1 contre 1. Nous allons séparer cette présentation en plusieurs parties :
-
La partie JEU et GAMEPLAY
-
La partie RÉSEAUX et COMMUNICATION
-
La partie INTELLIGENCE ARTIFICIELLE
-
La partie GRAPHIQUE
-
La partie PROBLÈME ET SOLUTION RENCONTRÉES
AVANT TOUT : Comment lancer le jeu.
Pour lancer le jeu, nous pouvons utiliser les addons de vscode en appuyant sur run sur la methode main.
Sinon vous pouvez utiliser le Makefile, il va stocker tout les fichiers .class dans un fichier bin. Nous pouvons le re-utiliser plus tard grâce à une autre commande sur le Makefile.
Les commandes pour le makefile :
-
Make: il va lancer la compilation et va lancer l'interpréteur java (il va aussi nettoyer le fichier bin avant). -
Make clean: il va supprimer le fichier bin. -
Make run: il va uniquement lancer l'interpréteur java (Attention à ne pas supprimer le bin avant)
Pour lancer le jeu en multijoueur avec Makefile (mot1 et mot2 sont des mots à changer en fonction du canal):
Make channel=mot1 adversaire=mot2: compile tout le programme et le lance en multijoueur.Make run channel=mot1 adversaire=mot2: lance uniquement le programme en multijoueur.
Sur windows, vous avez une autre option que personnellement je vous encourage, c'est l'utilisation du run.bat. Ce programme va lancer
IA (Q-Learning)
- Explications
Le Q-Learning ou l'apprentissage par renforcement est un type d'apprentissage où le personnage ou autre apprend par une base de donnée de tout ce qu'il a réussi dans le passé. Il apprend en sauvegardant dans sa base de donnée toute les actions qu'il a pu faire au long de son apprentissage.
Il y a 2 types de temps dans son apprentissage :
- La phase d'exploration
- La phase d'apprentissage
La phase d'exploration
La phase d'exploration se passe le plus possible au début de son apprentissage, il va tester tout les actions aléatoire qu'il a en dispositions. Il va souvent se planter et il va sauvegarder toute sa progression.
La phase d'apprentissage
La phase d'apprentissage est souvent beaucoup plus long dans son apprentissage, il va tester des mécaniques qu'il a apprises et essayer un max possible de faire des actions qui sont dans sa base de donnée.
- Calcul et Compréhension
Q(s_t, a_t) = Q(s_t, a_t) + \alpha * (R_t + \gamma * \max(Q(s_{t+1}, a)) - Q(s_t, a_t))
Ce calcul sera la valeur de toutes les actions que l'IA va enregistrer dans sa base de donnée, il y aura toutes les informations comme la position du snake ou la grille du jeu puis ce calcul pour définir la "fiabilité" du coup.
-
Q(s_t, a_t): est la valeur de Q actuelle, il contients_tqui l'état eta_tqui est l'action de Q. -
\alpha: est le taux d'apprentissage, c'est lui qui détermine si on doit écraser les valeurs ou non. -
R_t: est la récompense de l'action, si c'est une bonne action ou non. -
\gamma: est l'importance des futures récompenses. -
\max(Q(s_{t+1}, a)): est la valeur maximale de Q du prochain tour parmi toute sa base de donnée.
CRÉDITS
Ce projet à été réalisé par FARIA Théo et GUEZO Loïc.