====== Différences ======
Cette page vous affiche les différences entre la révision choisie et la version actuelle de la page.
|
cours:activite1:python_jeu [2013/11/07 13:46] r.doiteau créée |
cours:activite1:python_jeu [2019/05/11 14:35] (Version actuelle) |
||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ==== Jeu de hasard ==== | + | ===== Jeu de hasard ===== |
| + | ==== Installation ==== | ||
| + | |||
| + | * Télélécharger python 3.3.2 : http://www.python.org/download/ | ||
| + | |||
| + | * Dézipper le fichier python.zip {{:cours:activite1:jeu_de_hasard_doiteau_romain.tar|}} | ||
| + | |||
| + | * Placer les trois fichiers dans un même répertoire | ||
| + | |||
| + | * Double cliquer sur le fichier module | ||
| + | |||
| + | * Pour une aide consulter le fichier help du jeu en tapant 5 | ||
| + | |||
| + | ==== Utilisation ==== | ||
| + | |||
| + | |||
| + | Pour commencer à jouer taper 1 | ||
| + | |||
| + | 1-----JOUER------------------ | ||
| + | |||
| + | Renseigner un nombre entier compris entre 0 et 9 | ||
| + | |||
| + | Si le nombre entré est égale au nombre choisi par | ||
| + | |||
| + | l'ordinateur, vous avez gagné, sinon vous avez perdu | ||
| + | |||
| + | Si vous avez perdu , il vous est proposé de rejouer | ||
| + | |||
| + | Taper O ou o pour rejouer et N ou n pour revenir au menu | ||
| + | |||
| + | 2-----SCORES----------------- | ||
| + | |||
| + | Affiche le palmarès des scores | ||
| + | |||
| + | 3-----CHANGER DE JOUEUR------ | ||
| + | |||
| + | Permet de changer de joueur en cours de partie | ||
| + | |||
| + | 4-----QUITTER---------------- | ||
| + | |||
| + | Quitte le jeu | ||
| + | |||
| + | |||
| + | ---------------------------------------- | ||
| + | |||
| + | ==== Code source ==== | ||
| + | |||
| === Module ==== | === Module ==== | ||
| <code=python> | <code=python> | ||
| - | ############################################# | + | ################################################################################ |
| - | # Programme Python type # | + | # Programme Python type # |
| - | # auteur : R.Doiteau # | + | # auteur : R.Doiteau # |
| - | ############################################# | + | ################################################################################ |
| - | #Consiste à deviner un entier tiré au # | + | #http://doiteauromain.amon-internet.com/doku.php?id=cours:activite1:python_jeu # |
| - | # hasard depuis une liste d'entiers de 0 à9 # | + | ################################################################################ |
| - | #Les résultats sont consignées dans # | + | #Consiste à deviner un entier tiré au # |
| - | # un fichier sous la forme : palmares.txt # | + | # hasard depuis une liste d'entiers de 0 à9 # |
| - | ############################################# | + | #Les résultats sont consignées dans # |
| + | # un fichier sous la forme : palmares.txt # | ||
| + | ################################################################################ | ||
| + | |||
| # Importation de fonctions externes : | # Importation de fonctions externes : | ||
| Ligne 20: | Ligne 70: | ||
| initialisation() | initialisation() | ||
| </code> | </code> | ||
| + | |||
| + | === Programme === | ||
| + | <code=python> | ||
| + | ####################################################################### | ||
| + | ###################PROGRAMME#PRINCIPALE################################ | ||
| + | ####################################################################### | ||
| + | |||
| + | def menu (nom_joueur): | ||
| + | #variables | ||
| + | Choix_1=print("1-----JOUER------------------") | ||
| + | Choix_2=print("2-----SCORES-----------------") | ||
| + | Choix_3=print("3-----CHANGER DE JOUEUR------") | ||
| + | Choix_4=print("4-----QUITTER----------------") | ||
| + | Choix_5=print("5-----HELP-------------------") | ||
| + | |||
| + | #programme = initialisation du menu | ||
| + | nbre_gagnant=0 | ||
| + | print(40*"-") | ||
| + | Choix=str(input("Que voulez vous faire ? 1/2/3/4 ")) | ||
| + | print(40*"-") | ||
| + | |||
| + | while Choix !="1" and Choix !="2" and Choix !="3" and Choix !="4" and Choix !="5": | ||
| + | Choix = input("Veuiller choisir : ") | ||
| + | if Choix == "1": | ||
| + | jouer(nom_joueur) | ||
| + | elif Choix == "2": | ||
| + | scores(nom_joueur) | ||
| + | elif Choix == "3": | ||
| + | changer_joueur (nom_joueur) | ||
| + | elif Choix == "4": | ||
| + | quitter() | ||
| + | elif Choix == "5": | ||
| + | help(nom_joueur) | ||
| + | ########################################################################################################### | ||
| + | ########################################################################################################### | ||
| + | |||
| + | def help (nom_joueur): | ||
| + | fic_help=open("readme.txt","r") | ||
| + | dico_help=fic_help.read() | ||
| + | |||
| + | print (dico_help) | ||
| + | retour_menu=input("Retour menu /1") | ||
| + | |||
| + | if retour_menu =="1": | ||
| + | menu(nom_joueur) | ||
| + | while retour_menu !="1": | ||
| + | retour_menu=(input("veuillez choisir ? ")) | ||
| + | else: | ||
| + | menu(nom_joueur) | ||
| + | |||
| + | def initialisation(): | ||
| + | ####### ENTREE = sert à initialisé un nom de joueur pour charger le menu, sans énoncé a chaque fois la consigne##### | ||
| + | #variable | ||
| + | nom_joueur="" | ||
| + | #nom_joueur="a" #initilisation d'un joueur au hasard pour commencé le programme | ||
| + | #programme = chargement de la consigne | ||
| + | print(40*"-") | ||
| + | print (17*"-","MENU",17*"-") | ||
| + | print(40*"-") | ||
| + | print("Ce jeu consiste a tiré au sort un entier entre 0 et 9 ") | ||
| + | print(40*"-") | ||
| + | return changer_joueur(nom_joueur) | ||
| + | |||
| + | def quitter (): | ||
| + | |||
| + | print("Au revoir les amis") | ||
| + | exit() | ||
| + | |||
| + | def changer_joueur(nom_joueur): | ||
| + | #variable | ||
| + | nom_joueur=input("Veuillez entrer votre nom :") | ||
| + | comptage=len(nom_joueur) #compte le nombre de carcartére du nom_joueur | ||
| + | i=0 #variable utilisé pour le nombre de passe du nom | ||
| + | # si le nombre de caractére du nom joueur et nul et > à 10 il renvoie une entrée nom | ||
| + | while comptage == 0 or comptage>10: | ||
| + | i=i+1 | ||
| + | if i<4: #arrête le progarmme si la passe est < à 4 | ||
| + | nom_joueur=input("Veuillez entrez votre nom svp : ") | ||
| + | else: | ||
| + | print("au revoir") | ||
| + | exit() | ||
| + | |||
| + | #programme | ||
| + | print("Bonjour",nom_joueur) | ||
| + | menu(nom_joueur) | ||
| + | |||
| + | def scores (nom_joueur): | ||
| + | #variables | ||
| + | liste_vide = [] #création liste vide | ||
| + | palmares=open("palmares.txt","r") #ouverture du fichier palmares | ||
| + | liste_palmares=palmares.readlines() #lecture palmares dans une liste | ||
| + | record=0 #variable utilisé pour implémanter les records | ||
| + | podium=1 | ||
| + | #programme | ||
| + | #séparation des éléments de la liste et tri dans la liste vide | ||
| + | for ligne in liste_palmares: | ||
| + | liste_lu=ligne.split(":") #coupe le palmares par les : | ||
| + | liste_vide.append(int(liste_lu[1])) #implémante une liste | ||
| + | liste_vide.sort(reverse=True) #tri la liste en ordfe inverse | ||
| + | |||
| + | |||
| + | #effectue un tri par orde décroissant | ||
| + | for element in liste_vide: | ||
| + | if record > 0: | ||
| + | podium=podium+1 | ||
| + | if liste_vide[record] != liste_vide[record-1]: | ||
| + | for ligne in liste_palmares: | ||
| + | liste_lu=ligne.split(":") | ||
| + | |||
| + | if str(element) == liste_lu[1]: | ||
| + | |||
| + | print(" ",podium,"--",liste_lu[0], "with",element,"points") | ||
| + | elif record == 0: | ||
| + | for ligne in liste_palmares: | ||
| + | liste_lu=ligne.split(":") | ||
| + | if str(element) == liste_lu[1]: | ||
| + | print("The winner is",liste_lu[0],"with",element,"points") | ||
| + | record +=1 | ||
| + | print(40*"-") | ||
| + | palmares.close() | ||
| + | |||
| + | retour_menu=input("Retour menu /1") | ||
| + | |||
| + | #gére l'expection du menu | ||
| + | if retour_menu =="1": | ||
| + | menu(nom_joueur) | ||
| + | while retour_menu !="1": | ||
| + | retour_menu=(input("veuillez choisir ? ")) | ||
| + | else: | ||
| + | menu(nom_joueur) | ||
| + | |||
| + | def jouer(nom_joueur): | ||
| + | #fonction externe | ||
| + | import random | ||
| + | #variables | ||
| + | |||
| + | nbre_gagnant=random.randint(0,9) #effectue le hasard | ||
| + | print (nbre_gagnant) | ||
| + | rejouer = "O" | ||
| + | pnts=0 # implémente le compteur de points à zéro | ||
| + | i=0 # variable pour multiplier le nombre des points | ||
| + | pnts_gagne=0 # implémente les compteur point gagné à zéro | ||
| + | |||
| + | #programme principal | ||
| + | while rejouer == "O" or rejouer =="o": | ||
| + | nbre_joueur = nbre_entre() | ||
| + | |||
| + | if nbre_joueur == nbre_gagnant: | ||
| + | pnts=pnts+10 # incrémente le nombre de points | ||
| + | i=i+1 # mutliplie le nombre de points | ||
| + | pnts=i*pnts | ||
| + | print("GAGNE votre score est de",pnts) | ||
| + | pnts_gagne=pnts | ||
| + | pnts=0 | ||
| + | nbre_gagnant=random.randint(0,9) #réeffectue le hasard pour rejouer | ||
| + | print("Le nombre est",nbre_gagnant,"mais chut !!!!!!") | ||
| + | |||
| + | else : | ||
| + | nbre_joueur != nbre_gagnant | ||
| + | print("RATE") | ||
| + | print("Le nombre à trouver était",nbre_gagnant) | ||
| + | rejouer = input("Rejouer O/N ?") | ||
| + | nbre_gagnant=random.randint(0,9) #réeffectue le hasard pour rejouer | ||
| + | print("Le nombre est",nbre_gagnant,"mais chut !!!!!!") | ||
| + | |||
| + | while rejouer !="O" and rejouer != "N": | ||
| + | rejouer = input("Veuiller choisir O/N : ") | ||
| + | |||
| + | else: | ||
| + | #rejouer !="N" | ||
| + | pnts_gagne=str(pnts_gagne) | ||
| + | palmares=open("palmares.txt","a") | ||
| + | palmares.write(nom_joueur+":"+pnts_gagne+":"+"\n") | ||
| + | palmares.close() | ||
| + | palmares=open("palmares.txt","r") | ||
| + | liste_1=palmares.readlines() | ||
| + | somme=0 | ||
| + | for ligne in liste_1: | ||
| + | liste_2=ligne.split(":") | ||
| + | if nom_joueur == liste_2[0]: | ||
| + | liste_2[1]=int(liste_2[1]) | ||
| + | somme=somme+liste_2[1] | ||
| + | return menu(nom_joueur) | ||
| + | |||
| + | |||
| + | def nbre_entre(): | ||
| + | #variable | ||
| + | |||
| + | rep=0 #variable gérer pour l'exception | ||
| + | |||
| + | while rep ==0: | ||
| + | nbre_joueur = input("Veuillez entrer un nombre entre 1 et 10 : ") | ||
| + | |||
| + | #programme | ||
| + | try: | ||
| + | nbre_joueur = int(nbre_joueur) | ||
| + | if nbre_joueur < 0 or nbre_joueur > 9 : | ||
| + | print("Entre 0 et 9 svp") | ||
| + | else: | ||
| + | rep = 1 | ||
| + | except: | ||
| + | print("Un vrai entier entre 0 et 9 svp: ") | ||
| + | rep =0 | ||
| + | |||
| + | |||
| + | return nbre_joueur | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | nbre=int(nbre_gagnant) | ||
| + | print(nbre) | ||
| + | |||
| + | </code> | ||