IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation multimédia/Jeux Python Discussion :

Jeux des allumettes - Plantage au lancement


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Jeux des allumettes - Plantage au lancement
    Bonjour,

    Je dois programmer un jeu d'allumettes, je vous rappelle le principe : Ce jeu se pratique avec un nombre impair d’allumettes. Deux joueurs retirent à tour de rôle de 1 à 3 allumettes au choix. Le joueur retirant la dernière allumette est décrété perdant. Il faut écrire écrire un programme pour jouer à ce jeu contre l’ordinateur qui lui va jouer aléatoirement.

    J'ai fait ceci mais le programme plante au lancement et je ne vois pas où se trouve le ou les erreurs... si vous pouviez m'aider ce serait gentil.

    Voilà le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    from random import*
     
    def menu(rejouer):
        fin=False
        while fin==False: 
             print("\n\n******** Menu ********")            
             print("Bienvenue dans le jeu des allumettes!")
             print("Le but du jeu est simple : Choisissez un nombre d'allumette puis decidez du nombre (entre 1 et 3) a enlever.\n A son tour, l'ordinateur en fera de meme et ainsi de suite jusqu'a ce qu'il n'y ait plus d'allumettes.\n Le perdant est celui qui retirera la derniere allumette.")
             print("(1) Jouer ")
             print("(2) Quitter le programme ")
     
             if rejouer==2:
                fin=True
     
             return rejouer 
     
     
    def PartieJoueur(nbrAllumettes,nbrAlluAretirer,reponse): 
        print("/"*nbrAllumettes,end='')  
        print(" Vous jouez avec",alluaffiche,"allumettes") # Pareil
        # C'est ici qu'il faudrait saisir le nombre d'allumettes choisi par le joueur
        while 1:
            if (nbrAlluAretirer<1):
                print("Entrer un nombre SUPERIEUR ou egal a 1 ")
     
                reponse = False
            elif (nbrAlluAretirer>3):
                print("Entrer un nombre INFERIEUR ou egal 3")
     
                reponse = False
     
            if reponse == True: 
                break
     
                print("/"*alluaffiche,end='')  # Tâche ménagère, ne devrait pas être ici.
                if(alluaffiche<=1):
                    print(" Vous avez gagne :D")
     
    def tourOrdi(nbrAlluAretirer,alluaffiche):
        if (nbrAlluAretirer > 8):
            print(" L'ordinateur a retirer",nbrAlluAretirer,"Allumettes")
     
        elif (nbrAlluAretirer == 8):
            nbrAlluAretirer = 3
        elif (nbrAlluAretirer == 7):
            nbrAlluAretirer = 2
        elif (nbrAlluAretirer == 6):
            nbrAlluAretirer = 1
        elif (nbrAlluAretirer == 5):
            nbrAlluAretirer = 1
        elif (nbrAlluAretirer == 4):
            nbrAlluAretirer = 3
        elif (nbrAlluAretirer == 3):
            nbrAlluAretirer = 2
        elif (nbrAlluAretirer == 2):
            nbrAlluAretirer = 1
     
     
            alluaffiche=alluaffiche-nbrAlluAretirer
     
            print("/"*alluaffiche,end='')  
            print(" Il reste",alluaffiche,"allumettes")
            if(alluaffiche<=1):
                 print(" Vous avez perdu :(")
     
        return alluaffiche 
     
     
    #Programme principal #
    rejouer=1
    menu(rejouer)
    rejouer=input("Quel est votre choix? : ") 
     
    nbrAllumettes=int(input("Rentrer un nombre entier d'allumettes : ")) 
    alluaffiche=nbrAllumettes
     
    nbrAlluAretirer=int(input("Combien d'allumettes (entre 1 et 3) voulez-vous retirer? : "))
    reponse = True
    PartieJoueur(nbrAllumettes,nbrAlluAretirer,reponse)
    nbrAlluAretirer = (int(random()*3+1))
    alluaffiche=alluaffiche-nbrAlluAretirer
     
    tourOrdi(nbrAlluAretirer,alluaffiche)
    rejouer = True
    while rejouer:
        nbrAllumettes=int(input("Rentrer un nombre entier d'allumettes : "))
        alluaffiche=nbrAllumettes
        while alluaffiche>1:
     
            print("/"*nbrAllumettes,end='')
            print(" Vous jouez avec",alluaffiche,"allumettes")
     
        rejouer = menu() 
     
    # Fin du programme #
    print("*** Fin ***")

  2. #2
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Veuillez utiliser les balises de code (icone #) : c'est incompréhensible, comme cela.
    Pas d'aide par mp.

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Citation Envoyé par alsta Voir le message
    J'ai fait ceci mais le programme plante au lancement et je ne vois pas où se trouve le ou les erreurs... si vous pouviez m'aider ce serait gentil.
    Ben çà serait bien de poster le traceback i.e. toutes les informations expliquant le plantage.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    En fait le programme tourne à l'infini...

  5. #5
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par alsta Voir le message
    En fait le programme tourne à l'infini...
    Bonsoir,
    Dans la boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        while alluaffiche>1:
     
            print("/"*nbrAllumettes,end='')
            print(" Vous jouez avec",alluaffiche,"allumettes")
    rien ne modifie "alluaffiche"…
    D'où la boucle infinie…

    Clodion

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Citation Envoyé par alsta Voir le message
    En fait le programme tourne à l'infini...
    Et ben, il va (vous) falloir ajouter des "print" pour trouver quelle(s) sont les boucle(s) "while" dont vous ne sortez pas... puis trouver pourquoi çà n'en sort pas...


    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    "Rien ne modifie alluaffiche" que voulez vous dire ?

    Je ne comprends pas ...

  8. #8
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par alsta Voir le message
    "Rien ne modifie alluaffiche" que voulez vous dire ?

    Je ne comprends pas ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        while alluaffiche>1:
     
            print("/"*nbrAllumettes,end='')
            print(" Vous jouez avec",alluaffiche,"allumettes")
    Bonsoir,
    Sous quelle condition sort-on de la boucle?

    Clodion

Discussions similaires

  1. [Lex/Yacc] Aide traduction des structures de contrôle
    Par pelo68 dans le forum Générateurs de compilateur
    Réponses: 2
    Dernier message: 07/12/2010, 10h26
  2. Réponses: 42
    Dernier message: 11/03/2007, 14h09
  3. [javadoc] Aide Javadoc des packages java non permanente
    Par newfsch dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 29/11/2005, 23h15
  4. [Regex] besoin d'aide sur des motifs
    Par Oluha dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 25/11/2005, 11h23
  5. besoin d'aide pour des algos
    Par mathieu77 dans le forum Algorithmes et structures de données
    Réponses: 23
    Dernier message: 08/11/2005, 18h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo