48 lines
1.4 KiB
Markdown
48 lines
1.4 KiB
Markdown
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.
|