First implementation of Iterative Deepening MinMax

This commit is contained in:
Yorick Barbanneau 2023-12-17 17:37:07 +01:00
parent e506bcdab9
commit 437f05c8b2
3 changed files with 77 additions and 4 deletions

View file

@ -70,9 +70,24 @@ class MinmaxPlayerEngine(PlayerEngine):
class RandomPlayerEngine(PlayerEngine):
def get_move(board):
# [...]
```
Il est ainsi plus aisé de tester les moteur dans notre programme de base.
Quatre moteur "joueurs" sont implémentés :
* `Human` pour gérer des joueurs humain, une saisir utilisateur est demandée
sous la forme `<pos_x><pos_y>`. Il est aussi possible d'afficher le plateau
avec la commande `print` ou les coups possibles avec `help`;
* `Ramdom` va choisir aléatoirement le coup à jouer en fonction des coups;
possibles;
* `Minmax` utilise *MinMax* pour déterminer le coup à jouer avec une profondeur
maximale définie;
* `AphaBeta` utilise *AlphaBeta* pour déterminer le coup à jouer avec une
profondeur maximale définie;
* `IterativeDeepeningMinmax` utilise Minmax avec un temps maximum autorisé
Le choix de ces moteur se fait en ligne de commande avec
### Classes HeuristicsEngine