From e76cfdb75394b40640e7fffe03ebac759f4da3ac Mon Sep 17 00:00:00 2001 From: Yorick Barbanneau Date: Thu, 21 Dec 2023 01:02:39 +0100 Subject: [PATCH] Update documentation --- README.md | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 619a92c..abf62f3 100644 --- a/README.md +++ b/README.md @@ -28,10 +28,23 @@ options de base: ``` Voici la liste des options : +### Moteur de jeu + +Il est possible de définir le moteur de jeu indépedamment pour chaque joueur et +ainsi faire des match: + * `-be` | `--black-player-engine`: moteur utilisé par le joueur avec les pions noirs * `-we` | `--white-player-engine`: moteur utilisé par le joueur avec les pions blancs + +Le moteur de jeux par défaut est random. + +### Profondeur d'exploration + + Il est aussi possible de définir la profindeur d'exploration de l'arbre de jeu + pour chacun des joueurs: + * `-bd` | `--black-depth-exploration`: niveau d'eploration de l'arbre de jeu pour le joueur au pions noirs, valable pour les moteurs `minmax` et `alphabeta`. Utilisé aussi pour définit la profondeur de départ pour @@ -40,12 +53,25 @@ Voici la liste des options : pour le joueur au pions noirs, valable pour les moteurs `minmax` et `alphabeta`Utilisé aussi pour définit la profondeur de départ pour l'*iterative deepening* + +La profondeur par défaut est 3. + +### Heuristique + +Il est possible de choisir entre les 3 moteur de calcul d'heuristique inclus à +savoir *score*, avec *poids*, ou une combinaison *des deux*. Ils ne sont +utilisés que pour les moteur de jeu avec exploration de l'arbre de jeu (minmax, +alphabeta et leurs pendants avec *iterative deepening*): + * `-bh` | `--black-heuristic-engine`: moteur heuristique utilisé pour l'exploration de l'arbre de jeu du joueur noir (valable pour les moteur de jeu `minmax` et `alphabeta`) * `-wh` | `--black-heuristic-engine`: moteur heuristique utilisé pour l'exploration de l'arbre de jeu du joueur blanc (valable pour les moteur de jeu `minmax` et `alphabeta`) + +Pour l'utilisation des poids, il est possible de les paramétrer : + * `--weight`: scores utilisés pour le calcul des heuristiques pour les moteurs `weight` et `full`. @@ -68,10 +94,12 @@ class PlayerEngine(Object): def __init__(self, logger, options): def get_move(self, board): +# [...] + class MinmaxPlayerEngine(PlayerEngine): def get_move(board): -class RandomPlayerEngine(PlayerEngine): +class AlphabetaPlayerEngine(PlayerEngine): def get_move(board): # [...] @@ -133,6 +161,10 @@ Cependant certaines parties du plateau de jeu sont à éviter : Les poids affectés sont personnalisable via l'options `--weight`, par défaut nous avons -5, 2, 10 et 25. +Une étude autour de l'heuristique de l'Othello menée par Vaishnavi Sannidhanam +et Muthukaruppan Annamalai de l'université de Washingtown propose d'autre piste +pour maéliorer l'heuristique. [télécharger le pdf][etude] + Voici le tableau des poinds par défaut, il peut être affiché avec l'option `--show-weights-table`: @@ -155,8 +187,10 @@ Starting PyReverso... ``` + ### À savoir: Les pois utilisé pour les heuristiques sont important. [reversi]:https://www.coolmathgames.com/blog/how-to-play-reversi-basics-and-best-strategies +[etude]:https://courses.cs.washington.edu/courses/cse573/04au/Project/mini1/RUSSIA/Final_Paper.pdf