2024-09-17 16:47:14 +02:00
# BUT3 Jeu
2024-09-12 09:04:46 +02:00
2024-09-17 16:47:14 +02:00
##### Groupe : Dylan LANDRIN, Killian SCHIED
2024-09-12 11:44:55 +02:00
2024-09-17 16:47:14 +02:00
## Séance du 12/09/24
Au cours de cette séance, nous avons implémenté 3 algorithmes en python:
2024-09-12 11:44:55 +02:00
### exploreMax
Le but d'explore max est de déterminer si le joueur 1 peux faire un coup qui mettrais en echec joueur 2.
### exploreMin
Le but de Min est l'inverse, il voit s'il peut mettre joueur 1 en échec
### miniMax
2024-09-17 16:47:14 +02:00
miniMax appelle les explorations
## Séance du 17/09/24
Au cours de cette séance, nous avons apportés des modifications dans les fonctions utilisées dans l'algorithme miniMax() ainsi qu'un affichage de l'objet Game.
### exploreMax() et exploreMin()
Des optimisations ont été apportés dans ces fonctions afin de stopper la recherche lorsque une solution a été trouvée.
Exemple :
#### Avant
Test avec 5 allumettes :
```
$ python3 game.py
-----------------------
Game and algorithm data
-----------------------
== Game data ==
Remaining matches : 5
Game state : 0
Actual player : 1
== Algorithm data ==
exploreMax calls = 17
exploreMin calls = 19
First player winning ? = False
```
2024-09-18 16:48:02 +02:00
Test avec 11 allumettes :
```
$ python3 game.py
-----------------------
Game and algorithm data
-----------------------
== Game data ==
Remaining matches : 11
Game state : 0
Actual player : 1
== Algorithm data ==
exploreMax calls = 261
exploreMin calls = 261
First player winning ? = True
```
2024-09-17 16:47:14 +02:00
Test avec 14 allumettes :
```
-----------------------
Game and algorithm data
-----------------------
== Game data ==
Remaining matches : 14
Game state : 0
Actual player : 1
== Algorithm data ==
exploreMax calls = 916
exploreMin calls = 913
First player winning ? = True
```
2024-09-18 16:48:02 +02:00
Test avec 17 allumettes :
```
$ python3 game.py
-----------------------
Game and algorithm data
-----------------------
== Game data ==
Remaining matches : 17
Game state : 0
Actual player : 1
== Algorithm data ==
exploreMax calls = 6401
exploreMin calls = 6403
First player winning ? = False
```
Test avec 42 allumettes :
```
$ python3 game.py
```
Test avec 100 allumettes :
```
$ python3 game.py
```
2024-09-17 16:47:14 +02:00
#### Après
Test avec 5 allumettes :
```
$ python3 game_optimized.py
-----------------------
Game and algorithm data
-----------------------
== Game data ==
Remaining matches : 5
Game state : 0
Actual player : 1
== Algorithm data ==
exploreMax calls = 3
exploreMin calls = 3
First player winning ? = False
```
2024-09-18 16:48:02 +02:00
Test avec 11 allumettes :
```
$ python3 game.py
-----------------------
Game and algorithm data
-----------------------
== Game data ==
Remaining matches : 11
Game state : 0
Actual player : 1
== Algorithm data ==
exploreMax calls = 6
exploreMin calls = 6
First player winning ? = True
```
2024-09-17 16:47:14 +02:00
Test avec 14 allumettes :
```
-----------------------
Game and algorithm data
-----------------------
== Game data ==
Remaining matches : 14
Game state : 0
Actual player : 1
== Algorithm data ==
exploreMax calls = 8
exploreMin calls = 7
First player winning ? = True
2024-09-18 16:48:02 +02:00
```
Test avec 17 allumettes :
```
$ python3 game.py
-----------------------
Game and algorithm data
-----------------------
== Game data ==
Remaining matches : 17
Game state : 0
Actual player : 1
== Algorithm data ==
exploreMax calls = 9
exploreMin calls = 9
First player winning ? = False
```
Test avec 42 allumettes :
```
$ python3 game.py
-----------------------
Game and algorithm data
-----------------------
== Game data ==
Remaining matches : 42
Game state : 0
Actual player : 1
== Algorithm data ==
exploreMax calls = 22
exploreMin calls = 21
First player winning ? = True
```
Test avec 100 allumettes :
```
$ python3 game.py
-----------------------
Game and algorithm data
-----------------------
== Game data ==
Remaining matches : 100
Game state : 0
Actual player : 1
== Algorithm data ==
exploreMax calls = 51
exploreMin calls = 50
First player winning ? = True
2024-09-17 16:47:14 +02:00
```