First commit: minmax and alphabeta implemented
This commit is contained in:
commit
45abd8c7eb
7 changed files with 593 additions and 0 deletions
48
README.md
Normal file
48
README.md
Normal file
|
@ -0,0 +1,48 @@
|
|||
IA: jeu de Reversi
|
||||
------------------
|
||||
|
||||
Le but de ce projet est d'implémenter plusieurs mécanisme de jeu (humain et
|
||||
intelligence artificielle) pour le jeu de Reversi
|
||||
|
||||
## Installation
|
||||
|
||||
Le programme utilise des outils standard de Python installé de base : `random`,
|
||||
`math`, `argpase` et `logging`. Le project est fourni avec un shell *Nix* dans
|
||||
le répertoire `src`
|
||||
|
||||
## Utilisation
|
||||
|
||||
le programme propose un emsemble d'options en ligne de commande afin de définir
|
||||
les options du jeu comme le choix des implementations de jeu (aléatoine, MinMax
|
||||
etc.) ou encore les paramètres (profondeur de recherche). Une aide est intégrée
|
||||
au programme via la commande `./game.py -h`. Voici quelques exemple de
|
||||
lancement:
|
||||
|
||||
```shell
|
||||
# Lancement de base: les deux joueurs jouent avec le moteur aléatoire:
|
||||
./game.py
|
||||
|
||||
# joueur noir humain et joueur blanc MinMax avec une profondeur de 5
|
||||
./game.py -b human -w minmax --depth 5
|
||||
```
|
||||
|
||||
## Choix d'implémentation
|
||||
|
||||
### Classes PlayerEngine
|
||||
|
||||
Définies dans le fichier `./src/classes/Engines.py`, les classes utilisées h
|
||||
eritent de la classe de base `PlayerEngines` :
|
||||
|
||||
```python
|
||||
class PlayerEngine(Object):
|
||||
def __init__(self, logger, options):
|
||||
def get_move(self, board):
|
||||
|
||||
class MinmaxPlayerEngine(PlayerEngine):
|
||||
def get_move(board):
|
||||
|
||||
class RandomPlayerEngnine(PlayerEngine):
|
||||
def get_move(board):
|
||||
```
|
||||
|
||||
Il est ainsi plus aisé de tester les moteur dans notre programme de base.
|
Loading…
Add table
Add a link
Reference in a new issue