Le Travail d'Initiative Personnelle Encadré (TIPE) est l'occasion pour les étudiants de CPGE de travailler sur un projet complet, dans l'esprit du travail d'un ingénieur. Il doivent présenter le résultat de leur travail en fin de cursus dans le cadre des concours d'entrée aux Grandes Écoles scientifiques.
TIPE 2016 - RÖSE Valentin - SIMULATION NUMÉRIQUE DU JEU DE CARTES PRÉSIDENT, DE STRATÉGIES & EXPLOITATION
1. SIMULATION NUMÉRIQUE DU JEU DE CARTES
PRÉSIDENT, DE STRATÉGIES & EXPLOITATION
VALENTIN RÖSE - TIPE 2016
1
2. TIPE 2016 - RÖSE
PLAN
▸ Introduction
▸ I - Le jeu Président & sa modélisation en Python
▸ II - Implémentation des stratégies & étude statistique
▸ III - Difficultés techniques rencontrées & complexité temporelle
▸ Conclusion
2
Objectif: Vérifier l ́efficacité des stratégies en les soumettant à la
simulation numérique d’un nombre important de parties.
3. TIPE 2016 - RÖSE
I - LE JEU PRÉSIDENT ET SA MODÉLISATION EN PYTHON 1/2
▸ Principe du jeu: On joue avec un jeu classique de 54 cartes
que l’on répartit en nombre égal entre les joueurs.
Le but de chaque joueur est de se débarrasser de sa main.
▸ Règles:
- jouer 1 à 4 cartes identiques, d’une hauteur supérieure
ou égale au dernier groupe posé sur la table
- si la table est vierge, alors on pose ce que l’on veut
- la pose d’un groupe de cartes identiques à celui sur la
table par le joueur i oblige le joueur i+1 à passer son tour
- c’est le perdant de la partie j qui à la main à la partie j+1
3
4. TIPE 2016 - RÖSE
I - LE JEU PRÉSIDENT ET SA MODÉLISATION EN PYTHON 2/2
▸ Modélisation:
- 3,4,…,10,V,D,R,A,2,JOKER —> 3,4,…,10,11,12,13,14,15,16
- le Joker compte comme un 2
- avec ou sans échanges de cartes
- le joueur 0 débute
▸ Exemple:
Tour 1: J0 joue 3-3 / J1 joue 3-3 / J2 / J3 joue 2-2
Tour 2: J3 joue 4-4-4 / J0 joue 5-5-5 / J1 / J2 / J3 / J0
Tour 3: J0 joue 6 / J1 joue JOKER ……..
4
5. TIPE 2016 - RÖSE
II - IMPLÉMENTATION DES STRATÉGIES & ÉTUDE STATISTIQUE 1/2
▸ Etude statistique: 2 fonctions
- stats_brutes(nb_parties,mode_de_jeu) —> nb de victoires
- stats_points(nb_parties,mode_de_jeu) —> syst. de points
1er - 5pts, 2e - 4pts, 3e - 3pts, 4e - 2pts, 5e - 1pt, 6e - 0pt
Stratégie: joueur Identifiant
Naïf J_naïf
Aléatoire J_aléat
Favorisant les groupes J_fav_grp
Favorisant les groupes sans les casser J_fav_grp1
Facilitant le saut du joueur suivant J_Saute
Ultime (mixte des stratégies, hors aléat.) J_Ultime
5
6. TIPE 2016 - RÖSE
II - IMPLÉMENTATION DES STRATÉGIES & ÉTUDE STATISTIQUE 2/2
1) La stratégie du Joueur ultime
est la plus efficace
2) Tendance à l’équilibrage dans
les points
6
▸ Cdt° exp: 1000 parties, avec échange de cartes, 6 stratégies
7. TIPE 2016 - RÖSE
III - DIFFICULTÉS TECHNIQUES RENCONTRÉES & COMPLEXITÉ TEMPORELLE 1/3
▸ Organisation du code:
commande import de python
- initialisation, gestion, president_12, stratégies2, classement, statistiques
▸ Implémentation des stratégies:
liste de fonctions
7
8. TIPE 2016 - RÖSE
III - DIFFICULTÉS TECHNIQUES RENCONTRÉES & COMPLEXITÉ TEMPORELLE 2/3
8
9. TIPE 2016 - RÖSE
III - DIFFICULTÉS TECHNIQUES RENCONTRÉES & COMPLEXITÉ TEMPORELLE 3/3
▸ Complexité linéaire de stats_points vérifiée:
Cdt° exp: 4 j. ultime - 10 à 10000 parties - avec échanges de cartes
▸ La concaténation est définitivement à éviter:
Cdt° exp: stats_points - 4 j. ultime - 1000 parties - avec échanges
- avec concaténation
- avec liste.append()
9
10. TIPE 2016 - RÖSE
BILAN
▸ Modélisations: La traduction d’un raisonnement dans le
langage informatique n’est au départ pas simple et demande
de bien le décomposer.
▸ Etude statistique:
En terme de victoires, c’est la stratégie « ultime » qui est la plus
efficace. On valide ainsi le résultat issu de la « réalité ».
En considérant le système de points, pour un grand nombre de
parties, les stratégies tendent à être équivalentes (hors joueur
aléatoire)
▸ Organisation & Complexité: Il est important de concevoir ses
scripts dans l’esprit d’une complexité temporelle minimale et de
la manière la plus claire pour faciliter l’évolution du code.
10