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 :
### 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