Académique Documents
Professionnel Documents
Culture Documents
2 Un premier jeu
Le jeu que nous allons considérer est très simple, sa programmation ne pose aucun problème, ce qui permettra
de se focaliser sur la programmation du joueur apprenant.
Chifoumi, ou Ciseaux, Pierre, Feuille est un jeu à deux joueurs. Une partie se déroule en n manches, où
une manche consiste pour chaque joueur à annoncer (simultanément) l’un des trois mots Ciseaux, Pierre ou
Feuille.
– Si les deux joueurs annoncent la même chose, la manche est nulle, personne ne marque de points.
– Les Ciseaux l’emportent sur la Feuille (ils la coupent).
– La Pierre l’emporte sur les Ciseaux (elle les brise).
– La Feuille l’emporte sur la Pierre (elle l’enveloppe).
3.4 L’arbitre
La classe Partie sert à faire s’affronter deux joueurs, leur demande de jouer, informe chacun du coup joué
par l’autre, et affiche les scores. Le programme principal suivant se contente donc de créer une partie, de
définir les joueurs, et de lancer la compétitions :
import partie.Partie;
import joueurs.*;
package joueurs;
import chifoumi.*;
2
3.5.2 Les adversaires
On peut définir facilement plusieurs types de joueurs. Tout d’abord les joueurs qui ne s’occupent pas de leur
adversaire :
– Le joueur aléatoire : il est impossible d’apprendre sa stratégie.
– Le joueur préférentiel : il joue un coup plus souvent que d’autre.
– Le joueur périodique : la succession des coups qu’il joue est périodique : la période peut être plus ou moins
longue.
– Le joueur markovien : la probabilité qu’il joue un coup dépend du coup qu’il a joué au coup précédent.
– ...
Les joueurs dont la stratégie dépend des coups joués par leur adversaire :
– Le joueur réplicant : il joue le coup joué au coup précédent par son adversaire.
– Le joueur réplicant-méchant : il joue le coup qui aurait battu le coup précédent de son adversaire.
– Le joueur statisticien : il joue le coup qui gagne contre le coup le plus souvent joué par son adversaire.
– ...
Certaines de ces stratégies vous sont fournies dans le paquetage joueur, les autres peuvent s’en déduire
facilement.
D’autres stratégies sont possibles, vous pouvez les définir, les programmer et les diffuser . . .
4 Evaluation du résultat
On peut suivre l’efficacité de l’apprentissage contre un joueur donné en regardant l’évolution du nombre (ou
de la proportion) de parties gagnées, nulles, perdues : la classe Partie affiche ces résultats, qu’on peut lire
dans n’importe quel logiciel de tracé de courbes (gnuplot, par exemple).
3
Les courbes suivantes vous donnent quelques exemples de comportement.
300
200
150
100
50
0
0 100 200 300 400 500 600 700 800 900 1000
Nombre de parties jouees
4
Joueur repliquant mechant contre apprenant
900
Periodique gagne
Match nul
800 Apprenant gagne
700
600
Nombre de parties
500
400
300
200
100
0
0 100 200 300 400 500 600 700 800 900 1000
Nombre de parties jouees
2500
2000
Nombre de parties
1500
1000
500
0
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
Nombre de parties jouees
5
Joueur repliquant mechant contre apprenant
8000
Repliquant gagne
Match nul
Apprenant gagne
7000
6000
5000
Nombre de parties
4000
3000
2000
1000
0
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Nombre de parties jouees
Fig. 4 – Répliquant méchant vs Apprenant : l’apprenant comprend le truc après 500 parties, mais perd
encore parfois. . .mais après avoir joué 7000 parties, il ne perd plus.