====== 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> |