Update documentation

This commit is contained in:
Yorick Barbanneau 2023-12-21 01:02:39 +01:00
parent 2bcfc96ea0
commit e76cfdb753

View file

@ -28,10 +28,23 @@ options de base:
``` ```
Voici la liste des options : 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 * `-be` | `--black-player-engine`: moteur utilisé par le joueur avec les pions
noirs noirs
* `-we` | `--white-player-engine`: moteur utilisé par le joueur avec les pions * `-we` | `--white-player-engine`: moteur utilisé par le joueur avec les pions
blancs 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 * `-bd` | `--black-depth-exploration`: niveau d'eploration de l'arbre de jeu
pour le joueur au pions noirs, valable pour les moteurs `minmax` et pour le joueur au pions noirs, valable pour les moteurs `minmax` et
`alphabeta`. Utilisé aussi pour définit la profondeur de départ pour `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 pour le joueur au pions noirs, valable pour les moteurs `minmax` et
`alphabeta`Utilisé aussi pour définit la profondeur de départ pour `alphabeta`Utilisé aussi pour définit la profondeur de départ pour
l'*iterative deepening* 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 * `-bh` | `--black-heuristic-engine`: moteur heuristique utilisé pour
l'exploration de l'arbre de jeu du joueur noir (valable pour les moteur de l'exploration de l'arbre de jeu du joueur noir (valable pour les moteur de
jeu `minmax` et `alphabeta`) jeu `minmax` et `alphabeta`)
* `-wh` | `--black-heuristic-engine`: moteur heuristique utilisé pour * `-wh` | `--black-heuristic-engine`: moteur heuristique utilisé pour
l'exploration de l'arbre de jeu du joueur blanc (valable pour les moteur de l'exploration de l'arbre de jeu du joueur blanc (valable pour les moteur de
jeu `minmax` et `alphabeta`) 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`: scores utilisés pour le calcul des heuristiques pour les moteurs
`weight` et `full`. `weight` et `full`.
@ -68,10 +94,12 @@ class PlayerEngine(Object):
def __init__(self, logger, options): def __init__(self, logger, options):
def get_move(self, board): def get_move(self, board):
# [...]
class MinmaxPlayerEngine(PlayerEngine): class MinmaxPlayerEngine(PlayerEngine):
def get_move(board): def get_move(board):
class RandomPlayerEngine(PlayerEngine): class AlphabetaPlayerEngine(PlayerEngine):
def get_move(board): 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 Les poids affectés sont personnalisable via l'options `--weight`, par défaut
nous avons -5, 2, 10 et 25. 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 Voici le tableau des poinds par défaut, il peut être affiché avec l'option
`--show-weights-table`: `--show-weights-table`:
@ -155,8 +187,10 @@ Starting PyReverso...
``` ```
### À savoir: ### À savoir:
Les pois utilisé pour les heuristiques sont important. Les pois utilisé pour les heuristiques sont important.
[reversi]:https://www.coolmathgames.com/blog/how-to-play-reversi-basics-and-best-strategies [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