Skip to content

Instantly share code, notes, and snippets.

@jeanpat
Last active September 17, 2022 15:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jeanpat/b22d7d2253e4633dda657354415c09c5 to your computer and use it in GitHub Desktop.
Save jeanpat/b22d7d2253e4633dda657354415c09c5 to your computer and use it in GitHub Desktop.
Ce script Python simule la répétition de parties du jeux des trois portes. Dans un premier temps avec un joueur qui ne change pas d'avis et dans un deuxième temps avec un joueur qui modifie son choix initial.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Mar 23 18:44:50 2021
@author: jeanpat
"""
#On importe le module random pour faire un tirage aléatoire dans une liste
import time
import random
print(time.strftime(' %d /%m/%Y %H:%M:%S'))
print()
print('-----------Simulation d\'une partie du jeux des trois portes------------------')
print(' Jeu de la télévision américaine présenté par Monty Hall')
print()
#Il y a trois portes, enregistrée dans une liste
PORTES_FERMEES = ["porte1", "porte2", "porte3"]#ceci est une liste
#On place une voiture derrière une porte
# convertion de la liste en ensemble (pour la suite)
PORTE_VOITURE = set([random.choice(PORTES_FERMEES)])
print("La voiture est cachée derrière la ", PORTE_VOITURE)
CHOIX1_JOUEUR = set([random.choice(PORTES_FERMEES)])
PORTES_FERMEES = set(PORTES_FERMEES)
print("Le joueur choisit la ", CHOIX1_JOUEUR)
print()
#On place une chèvre derrière une porte où il n'y a pas de voiture:
PORTES_CHEVRES = PORTES_FERMEES - PORTE_VOITURE
#Le présentateur sait où est la voiture. Il choisit donc une porte où se trouve une chèvre
#Malheureusement il faut ici retransformer l'ensemble "chevres" en liste pour faire un tirage aléatoire #entre les deux portes
#print("Le présentateur ne choisit pas la porte du joueur, ni celle de la voiture")
CHOIX_PRESENTATEUR = random.choice(list(PORTES_CHEVRES - CHOIX1_JOUEUR))
CHOIX_PRESENTATEUR = set([CHOIX_PRESENTATEUR])
print("Monty Hall ouvre la ", CHOIX_PRESENTATEUR)
# Le joueur ne change pas son choix
PORTES_FERMEES = PORTES_FERMEES - CHOIX_PRESENTATEUR
print("Les ", set(PORTES_FERMEES), "sont fermées.")
print()
print("Monthy Hall demande au joueur s'il veut changer son choix:")
print(" Non, le joueur ne change pas son choix, on ouvre la ", CHOIX1_JOUEUR)
if CHOIX1_JOUEUR.issubset(PORTE_VOITURE) and PORTE_VOITURE.issubset(CHOIX1_JOUEUR):
#print("Le joueur",CHOIX1_JOUEUR, '--', PORTE_VOITURE, 'le joueur gagne la voiture')
print(' le joueur gagne la voiture')
else:
#print("----- ",CHOIX1_JOUEUR, '--', PORTE_VOITURE, ' le joueur gagne la chèvre')
print(' le joueur perd')
# le joueur change d'avis
NOUVEAU_CHOIX = PORTES_FERMEES - CHOIX1_JOUEUR
print(" Oui: le joueur change son choix, on ouvre la ",NOUVEAU_CHOIX)
# Si un ensemble E1 est ss ensemble de E2
# et E2 ss ensemble de E1 alors E1=E2
if NOUVEAU_CHOIX.issubset(PORTE_VOITURE) and PORTE_VOITURE.issubset(NOUVEAU_CHOIX):
#print(NOUVEAU_CHOIX, '--', PORTE_VOITURE, 'le joueur aurait gagné la voiture')
print(' le joueur gagne la voiture')
else:
#print(NOUVEAU_CHOIX, '--', PORTE_VOITURE, ' le joueur aurait gagné la chèvre')
print(' le joueur perd')
print()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment