Add heuritics informations
This commit is contained in:
parent
ebadd02df7
commit
1e5f87b5af
1 changed files with 46 additions and 7 deletions
53
README.md
53
README.md
|
@ -53,7 +53,8 @@ affichée avec l'option `-d`.
|
||||||
## Choix d'implémentation
|
## Choix d'implémentation
|
||||||
|
|
||||||
J'ai avant tout privilégié la personnalisation des différentes paramètres des
|
J'ai avant tout privilégié la personnalisation des différentes paramètres des
|
||||||
différents moteurs composant le jeu.
|
différents moteurs composant le jeu. Il,e st ainsi plus aisé de tester le
|
||||||
|
fonctionnement des différents moteurs.
|
||||||
|
|
||||||
### Classes PlayerEngine
|
### Classes PlayerEngine
|
||||||
|
|
||||||
|
@ -85,15 +86,19 @@ Quatre moteur "joueurs" sont implémentés :
|
||||||
maximale définie;
|
maximale définie;
|
||||||
* `AphaBeta` utilise *AlphaBeta* pour déterminer le coup à jouer avec une
|
* `AphaBeta` utilise *AlphaBeta* pour déterminer le coup à jouer avec une
|
||||||
profondeur maximale définie;
|
profondeur maximale définie;
|
||||||
* `IterativeDeepeningMinmax` utilise Minmax avec un temps maximum autorisé
|
* `MinmaxDeepeningMinmax` utilise Minmax avec un temps maximum autorisé;
|
||||||
|
* `AlphaBetaDeepening` utilise AlphaBeta avec un temps maximum autorisé
|
||||||
|
|
||||||
Le choix de ces moteur se fait en ligne de commande avec
|
Le choix de ces moteur se fait en ligne de commande avec les options évoquées
|
||||||
|
plus haut.
|
||||||
|
|
||||||
### Classes HeuristicsEngine
|
### Classes HeuristicsEngine
|
||||||
|
|
||||||
Plusieurs classes impémentent plusieurs méthodes pour le calcul de
|
Plusieurs classes impémentent plusieurs méthodes pour le calcul de
|
||||||
l'heuristique. Comme nous l'avons vu, les moteurs peuvent être choisis en ligne
|
l'heuristique. Toutes les implémentations se trouvent dans le fichier
|
||||||
de commande et de façon indépendante pour les joueurs blanc et noir.
|
`./src/classes/Heuristic.py` Comme nous l'avons vu, les moteurs peuvent être
|
||||||
|
choisis en ligne de commande et de façon indépendante pour les joueurs blanc et
|
||||||
|
noir.
|
||||||
|
|
||||||
Trois implementation sond disponibles:
|
Trois implementation sond disponibles:
|
||||||
|
|
||||||
|
@ -112,9 +117,43 @@ ordre d'importance :
|
||||||
|
|
||||||
1. Les coins représentent les parties les plus importantes;
|
1. Les coins représentent les parties les plus importantes;
|
||||||
2. Ensuite vient les bords;
|
2. Ensuite vient les bords;
|
||||||
3. Et enfin les coins.
|
3. Et enfin le centre.
|
||||||
|
|
||||||
|
Cependant certaines parties du plateau de jeu sont à éviter :
|
||||||
|
|
||||||
|
* Les cases autour des coins, car elle laisserai la possibilité au joueur
|
||||||
|
adverse de placer un de ses pions dans le coin. La case en diagonale du coin
|
||||||
|
est particulièrement sensible.
|
||||||
|
* Les lignes juste avant les bords, placer un pion à cet endroit permettrai à
|
||||||
|
l'adversaire de placer un pion sur le bord. Ce ion sera alors p[lus
|
||||||
|
difficilement *"capturable"*
|
||||||
|
|
||||||
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 2, 10 et 25.
|
nous avons -5, 2, 10 et 25.
|
||||||
|
|
||||||
|
Voici le tableau des poinds par défaut, il peut être affiché avec l'option
|
||||||
|
`--show-weights-table`:
|
||||||
|
|
||||||
|
```text
|
||||||
|
./game.py --show-weights-table
|
||||||
|
Starting PyReverso...
|
||||||
|
|
||||||
|
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|
||||||
|
--------------------------------------------
|
||||||
|
0 |25 |-5 |10 | 8 | 8 | 8 | 8 |10 |-5 |25 |
|
||||||
|
1 |-5 |-7 |-3 |-3 |-3 |-3 |-3 |-3 |-7 |-5 |
|
||||||
|
2 |10 |-3 | 0 | 0 | 0 | 0 | 0 | 0 |-3 |10 |
|
||||||
|
3 | 8 |-3 | 0 | 2 | 2 | 2 | 2 | 0 |-3 | 8 |
|
||||||
|
4 | 8 |-3 | 0 | 2 | 2 | 2 | 2 | 0 |-3 | 8 |
|
||||||
|
5 | 8 |-3 | 0 | 2 | 2 | 2 | 2 | 0 |-3 | 8 |
|
||||||
|
6 | 8 |-3 | 0 | 2 | 2 | 2 | 2 | 0 |-3 | 8 |
|
||||||
|
7 |10 |-3 | 0 | 0 | 0 | 0 | 0 | 0 |-3 |10 |
|
||||||
|
8 |-5 |-7 |-3 |-3 |-3 |-3 |-3 |-3 |-7 |-5 |
|
||||||
|
9 |25 |-5 |10 | 8 | 8 | 8 | 8 |10 |-5 |25 |
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### À savoir:
|
||||||
|
|
||||||
|
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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue