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

Python Discussion :

Fonction "recommencer" - besoin d'aide [Python 3.X]


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Fonction "recommencer" - besoin d'aide
    Salut !

    Je fais spécialité ISN (informatique et sciences du numérique) en terminale, et je dois créer un programme (pas un programme de ouf parce que nous sommes débutants) qui sera mon projet de fin d'année.
    J'ai fait une sorte de petit bac sur python, du genre "Pays qui commence par la lettre [lettre aléatoire]" et il faut bien répondre, avec un système de points et un chronomètre (on a 60 secondes).
    Seulement voilà, je le trouve pas hyper complet, et j'aimerais bien demander à l'utilisateur à la fin des 60 secondes s'il veut recommencer ou pas. Mais je bloque.. j'y arrive pas. Si vous voyez comment faire, merci de me le dire !
    Je vous passe le code (il n'est pas terminé, j'ai fait que 3 catégories pour l'instant mais je compte en faire pas mal.) :

    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
     
    from random import randint
    from threading import Timer
     
    def FinDuJeu():
        #Définit GameContinue en global pour stopper la boucle d'en bas
        global GameContinue
        GameContinue = False
        print('')
        print('Le jeu est terminé! Vous terminez avec un score de {} point(s). Bravo!'.format(Points))
     
     
    database = []
     
    #on ajoute une liste par catégorie
    #INFO: Mettre tous les mots en minuscule.
    database.append(['afghanistan', 'afrique du sud', 'albanie', 'algérie', 'allemagne', 'andorre', 'angola', 'arabie saoudite', 'argentine', 'arménie', 'austalie', 'autriche', 'azerbaïdjan',
                     'bahamas', 'bangladesh', 'belgique', 'benin', 'bermudes', 'biélorussie', 'birmanie', 'bolivie', 'bosnie-herzégovine', 'botwswana', 'brésil', 'bulgarie', 'burkina faso',
                     'cambodge', 'cameroun', 'canada', 'cap vert', 'centrafrique', 'chili', 'chine', 'chypre', 'colombie', 'congo', 'corée du nord', 'corée du sud', 'costa rica', 'croatie', 'cote d\'ivoire', 'cuba',
                     'danemark', 'djibouti', 'dominique','egypte', 'emirats arabes unis', 'equateur', 'espagne', 'estonie', 'etats-unis', 'ethiopie',
                     'france', 'finlande', 'gabon', 'gambie', 'géorgie', 'ghana', 'grèce', 'groenland', 'guatémala', 'guinée', 'guyana','haïti', 'honduras', 'hong kong', 'hongrie','inde', 'indonésie', 'irak', 'iran', 'irlande', 'islande', 'israël', 'italie',
                     'jamaïque', 'japon', 'jordanie','kazakhstan', 'kenya', 'kirghizstan', 'kiribati', 'kosovo', 'koweït', 'laos', 'lesotho', 'lettonie', 'liban', 'liberia', 'libye', 'liechtenstein', 'lituanie', 'luxembourg',
                     'macao', 'macédoine', 'madagascar', 'malaisie', 'malawi', 'maldives', 'mali', 'malte', 'maroc', 'mauritanie', 'mexique', 'micronésie', 'moldavie', 'monaco', 'mongolie', 'monténégro', 'mozambique',
                     'nambie', 'nauru', 'népal', 'nicaragua', 'niger', 'nigeria', 'norvège', 'nouvelle calédonie', 'nouvelle zélande','ouganda','ouzbekistan','pakistan', 'palau', 'palestine', 'panama', 'paraguay', 'pays-bas', 'pérou', 'philippines', 'pologne', 'porto rico', 'portugal', 'qatar', 'république tchèque', 'roumanie',
     
                     'royaume-uni', 'russie', 'rwanda',
                     'tadjikistan', 'taïwan', 'tanzanie', 'tchad', 'tchéquie', 'thailande', 'tibet', 'timer oriental', 'togo', 'tonga', 'trinité et tobago', 'tunisie', 'turkménistan','ukraine', 'urugay','vatican', 'vénézuéla', 'vietnam','rien','yémen','zambie', 'zimbabwe'])
     
    database.append(['ail', 'arachide', 'amarante', 'artichaut', 'asperge', 'aubergine', 'asperge', 'avocat', 'bambou', 'bardanne', 'basilic', 'betterave', 'brocoli', 'calebasse', 'cardon', 'carotte', 'céleri', 'chou', 'chou de bruxelles', 'chou chinois', 'chou-fleur', 'christophine', 'ciboulette', 'citrouille',
                     'concombre', 'cornichon', 'courge', 'courgette', 'dattes', 'échalote', 'endive', 'épinard', 'fenouil', 'fève', 'flageolet', 'gingembre', 'rien', 'haricot', 'rien', 'rien', 'rien', 'laitue', 'lentille', 'mâche', 'menthe', 'maïs', 'magnoc', 'navet', 'oignon', 'ortie', 'oseille', 'patate douce',
                     'patate', 'pomme de terre', 'persil', 'petit pois', 'piment', 'poireau', 'pois chiche', 'poivron', 'potiron', 'potimarron', 'quinoa', 'rien', 'radis', 'rhubarbe', 'rutabaga', 'salsifis', 'soja', 'salade', 'tomate', 'topinanbour', 'rien', 'wasabi', 'rien', 'rien', 'rien', 'rien', 'rien']) 
     
    database.append(['abarth', 'ac','alfa romeo', 'alpine','aston martin','audi','austin healey','bentley','bmw','brabus','bugatti','cadillac','caterham','chevrolet','chrysler','citroen','dodge','rien','ferrari','fiat','ford','ford mustang','ford usa','rien','honda', 'hummer','hyundai','rien','jaguar','jeep',
                     'kia','lamborghini','lancia','land rover','lexus','lotus','maserati','mazda','mclaren','mini','mitsubishi','morgan','nissan','opel','peugeot','porsche','rien','renault','rolls-royce','saab','seat','subaru','suzuki','tesla','toyota','triumph','tvr','rien','volkswagen','volvo','rien','rien','rien','rien'])
     
     
    #les lettres dans un array pour pouvoir en sélectionner une aléatoirement
    array_lettres = list("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
     
     
    #Les listes de catégories
    listes = ['Pays','Légumes','Marque de voiture']
    list_type = 0
     
    #La variable qui te dit si tu peux continuer
    GameContinue = True;
    #Les points. Variable globale car on en a besoin plus haut
    global Points
    Points = 0;
     
    print('Bienvenue au petit bac!')
    print('Entrez un mot de la bonne catégorie avec la bonne lettre pour gagner! Vous avez une minute pour entrer le maximum de mots!');
    print('Information: Si vous ne savez pas quoi mettre, mettez "rien". Si la catégorie ne comporte effectivement aucun mot commençant par la lettre demandée, cela vous comptera bon.');
     
    input('Entrez du texte pour commencer le jeu et le timer : ')
     
     
    #Le timer
    Time = Timer(60, FinDuJeu)
    Time.start()
     
    #boucle infinie, à changer avec le timer.
    while GameContinue:
     
        #on sélectionne la lettre aléatoirement...
        lettre_debut = array_lettres[randint(0,25)]
        #et la liste aussi
        list_type = randint(0,len(listes)-1)
     
     
        #On demande à l'utilisateur d'entrer un mot de la catégorie et de la bonne lettre
        user_text = input('Entrez un mot de la catégorie "{}" commençant par {} : '.format(listes[list_type], lettre_debut))
     
        #On vérifie si il y a bien un mot qui correspond à la lettre.
        is_mot = False
        for mot in database[list_type]:
            if mot[:1].upper() == lettre_debut:
                is_mot = True
                break;
        #Si le mot est dans la catégorie, et commence par la bonne lettre: OK, sinon, non.
        if user_text.lower() in database[list_type] and user_text[:1].upper() == lettre_debut:
            Points = Points+1
            print('Le mot correspond. Bravo! Vous avez {} point(s).'.format(Points))
        else:
            if is_mot == False and user_text.upper() == 'RIEN':
                Points = (Points+1)
                print("Bien joué, il n'y a aucun mot correspondant.Vous avez {} point(s).".format(Points))
     
            else: 
                print('Le mot ne correspond pas, essayez encore...');

  2. #2
    Membre régulier
    Homme Profil pro
    employé
    Inscrit en
    Mars 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Mars 2015
    Messages : 75
    Points : 103
    Points
    103
    Par défaut
    Bonjour à toi,

    Je ne sais pas si c'est ce que tu veux, je suis partie sur un programme en fonction je t'explique tout ça:

    Ma solution:

    1er code correspond à ton programme dans une fonction
    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
        
    from random import randint
    from threading import Timer
    
    #La variable qui te dit si tu peux continuer
    GameContinue = True;
    #Les points. Variable globale car on en a besoin plus haut
    Points = 0 # J'ai mis GameContinue et Points en variable de base 
     
    def FinDuJeu():
        #Définit GameContinue en global pour stopper la boucle d'en bas
        global GameContinue
        GameContinue = False
        print('')
        print('Le jeu est terminé! Vous terminez avec un score de {} point(s). Bravo!'.format(Points))
     
    def demarrer(): #Tout ton programme dans la fonction demarrer avec en global GameContinue et points
        global GameContinue, Points
        database = []
     
        #on ajoute une liste par catégorie
        #INFO: Mettre tous les mots en minuscule.
        database.append(['afghanistan', 'afrique du sud', 'albanie', 'algérie', 'allemagne', 'andorre', 'angola', 'arabie saoudite', 'argentine', 'arménie', 'austalie', 'autriche', 'azerbaïdjan',
                         'bahamas', 'bangladesh', 'belgique', 'benin', 'bermudes', 'biélorussie', 'birmanie', 'bolivie', 'bosnie-herzégovine', 'botwswana', 'brésil', 'bulgarie', 'burkina faso',
                         'cambodge', 'cameroun', 'canada', 'cap vert', 'centrafrique', 'chili', 'chine', 'chypre', 'colombie', 'congo', 'corée du nord', 'corée du sud', 'costa rica', 'croatie', 'cote d\'ivoire', 'cuba',
                         'danemark', 'djibouti', 'dominique','egypte', 'emirats arabes unis', 'equateur', 'espagne', 'estonie', 'etats-unis', 'ethiopie',
                         'france', 'finlande', 'gabon', 'gambie', 'géorgie', 'ghana', 'grèce', 'groenland', 'guatémala', 'guinée', 'guyana','haïti', 'honduras', 'hong kong', 'hongrie','inde', 'indonésie', 'irak', 'iran', 'irlande', 'islande', 'israël', 'italie',
                         'jamaïque', 'japon', 'jordanie','kazakhstan', 'kenya', 'kirghizstan', 'kiribati', 'kosovo', 'koweït', 'laos', 'lesotho', 'lettonie', 'liban', 'liberia', 'libye', 'liechtenstein', 'lituanie', 'luxembourg',
                         'macao', 'macédoine', 'madagascar', 'malaisie', 'malawi', 'maldives', 'mali', 'malte', 'maroc', 'mauritanie', 'mexique', 'micronésie', 'moldavie', 'monaco', 'mongolie', 'monténégro', 'mozambique',
                         'nambie', 'nauru', 'népal', 'nicaragua', 'niger', 'nigeria', 'norvège', 'nouvelle calédonie', 'nouvelle zélande','ouganda','ouzbekistan','pakistan', 'palau', 'palestine', 'panama', 'paraguay', 'pays-bas', 'pérou', 'philippines', 'pologne',
                         'porto rico', 'portugal', 'qatar', 'république tchèque', 'roumanie',
         
                         'royaume-uni', 'russie', 'rwanda',
                         'tadjikistan', 'taïwan', 'tanzanie', 'tchad', 'tchéquie', 'thailande', 'tibet', 'timer oriental', 'togo', 'tonga', 'trinité et tobago', 'tunisie', 'turkménistan','ukraine', 'urugay','vatican', 'vénézuéla', 'vietnam','rien','yémen','zambie', 'zimbabwe'])
         
        database.append(['ail', 'arachide', 'amarante', 'artichaut', 'asperge', 'aubergine', 'asperge', 'avocat', 'bambou', 'bardanne', 'basilic', 'betterave', 'brocoli', 'calebasse', 'cardon', 'carotte', 'céleri', 'chou', 'chou de bruxelles', 'chou chinois', 'chou-fleur', 'christophine', 'ciboulette', 'citrouille',
                         'concombre', 'cornichon', 'courge', 'courgette', 'dattes', 'échalote', 'endive', 'épinard', 'fenouil', 'fève', 'flageolet', 'gingembre', 'rien', 'haricot', 'rien', 'rien', 'rien', 'laitue', 'lentille', 'mâche', 'menthe', 'maïs', 'magnoc', 'navet', 'oignon', 'ortie', 'oseille', 'patate douce',
                         'patate', 'pomme de terre', 'persil', 'petit pois', 'piment', 'poireau', 'pois chiche', 'poivron', 'potiron', 'potimarron', 'quinoa', 'rien', 'radis', 'rhubarbe', 'rutabaga', 'salsifis', 'soja', 'salade', 'tomate', 'topinanbour', 'rien', 'wasabi', 'rien', 'rien', 'rien', 'rien', 'rien']) 
         
        database.append(['abarth', 'ac','alfa romeo', 'alpine','aston martin','audi','austin healey','bentley','bmw','brabus','bugatti','cadillac','caterham','chevrolet','chrysler','citroen','dodge','rien','ferrari','fiat','ford','ford mustang','ford usa','rien','honda', 'hummer','hyundai','rien','jaguar','jeep',
                         'kia','lamborghini','lancia','land rover','lexus','lotus','maserati','mazda','mclaren','mini','mitsubishi','morgan','nissan','opel','peugeot','porsche','rien','renault','rolls-royce','saab','seat','subaru','suzuki','tesla','toyota','triumph','tvr','rien','volkswagen','volvo','rien','rien','rien','rien'])
         
         
        #les lettres dans un array pour pouvoir en sélectionner une aléatoirement
        array_lettres = list("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
         
         
        #Les listes de catégories
        listes = ['Pays','Légumes','Marque de voiture']
        list_type = 0    
        
        #Le timer
        Time = Timer(60, FinDuJeu)
        Time.start()
         
        #boucle infinie, à changer avec le timer.
        while GameContinue:
         
            #on sélectionne la lettre aléatoirement...
            lettre_debut = array_lettres[randint(0,25)]
            #et la liste aussi
            list_type = randint(0,len(listes)-1)
         
         
            #On demande à l'utilisateur d'entrer un mot de la catégorie et de la bonne lettre
            user_text = input('Entrez un mot de la catégorie "{}" commençant par {} : '.format(listes[list_type], lettre_debut))
         
            #On vérifie si il y a bien un mot qui correspond à la lettre.
            is_mot = False
            for mot in database[list_type]:
                if mot[:1].upper() == lettre_debut:
                    is_mot = True
                    break;
            #Si le mot est dans la catégorie, et commence par la bonne lettre: OK, sinon, non.
            if user_text.lower() in database[list_type] and user_text[:1].upper() == lettre_debut:
                Points = Points+1
                print('Le mot correspond. Bravo! Vous avez {} point(s).'.format(Points))
            else:
                if is_mot == False and user_text.upper() == 'RIEN':
                    Points = (Points+1)
                    print("Bien joué, il n'y a aucun mot correspondant.Vous avez {} point(s).".format(Points))
         
                else: 
                    print('Le mot ne correspond pas, essayez encore...');
    Second Code correspond au lancement du programme, en l’occurrence là:
    Si l'utilisateur tape entrer (entrer = "(pas d'espace)")le programme se lance
    Auquel cas, le programme ne se lance pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    print('Bienvenue au petit bac!')
    print('Entrez un mot de la bonne catégorie avec la bonne lettre pour gagner! Vous avez une minute pour entrer le maximum de mots!');
    print('Information: Si vous ne savez pas quoi mettre, mettez "rien". Si la catégorie ne comporte effectivement aucun mot commençant par la lettre demandée, cela vous comptera bon.');
    
    go = input('Entrez du texte pour commencer le jeu et le timer : ') # création de l'input go pour préparer un if/else:
    #Bien entendu, tu peux choisir une façon bien précise de lancer ton programme, comme ça si l'utilisateur ne rentre pas ce que tu veux, le jeu ne se lance pas (c'est pas utile mais ça garni ton input qui servait pas à grand chose ;)
    if go == "":
        demarrer()
    else:
        print("Le jeu n'a pas été lancé")

    et le dernier point la relance du programme si l'utilisateur tape Y ou y (pour yes)
    Si il tape une lettre autre que Y/y, le programme s'arrête sinon le programme redémarre et re propose la relance ainsi de suite.
    j'ai testé, ça fonctionne, à toi de voir si c'est ce que tu voulais ! ^^
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    while FinDuJeu:
        print("\n\nSouhaitez-vous relancer une partie (Y/N) ?")
        reponse = input()
        if reponse == "y" or reponse =="Y":
            GameContinue = True
            Points = 0 #Car sinon tu repars sur le nombre de point de la partie précédente
            demarrer()
        else:
            print("Fin de la partie !")
            FinDuJeu()
            break

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Yo !

    Merci pour ta réponse, mais quand je met ton code pour recommencer la partie, ça m'affiche bien "Voulez vous recommencer ? Y/N" et quand je met "y" ou "Y" ça marche pas et ça me met :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Traceback (most recent call last):
      File "/Users/stephanie/Desktop/petitbac (2).py", line 98, in <module>
        Demarrer()
    NameError: name 'Demarrer' is not defined
    Et pour démarrer le programme (ta 2ème proposition), je l'ai remplacé et puis ça change rien, et quand je met du texte ça met "le jeu n'a pas été lancé" puis le jeu se lance...
    J'ai peut-être dû faire quelque chose de travers vu qu'avec toi ça marche ?

  4. #4
    Membre régulier
    Homme Profil pro
    employé
    Inscrit en
    Mars 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Mars 2015
    Messages : 75
    Points : 103
    Points
    103
    Par défaut
    L'erreur te dit que Demarrer n'est pas défini, as-tu changer la fonction demarrer() ? (je l'avais mis avec un d minuscule)

    EDIT: Test le comme ça avant de le modifier

    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
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    from random import randint
    from threading import Timer
     
    #La variable qui te dit si tu peux continuer
    GameContinue = True;
    #Les points. Variable globale car on en a besoin plus haut
    Points = 0 # J'ai mis GameContinue et Points en variable de base 
     
    def FinDuJeu():
        #Définit GameContinue en global pour stopper la boucle d'en bas
        global GameContinue
        GameContinue = False
        print('')
        print('Le jeu est terminé! Vous terminez avec un score de {} point(s). Bravo!'.format(Points))
     
    def demarrer(): #Tout ton programme dans la fonction demarrer avec en global GameContinue et points
        global GameContinue, Points
        database = []
     
        #on ajoute une liste par catégorie
        #INFO: Mettre tous les mots en minuscule.
        database.append(['afghanistan', 'afrique du sud', 'albanie', 'algérie', 'allemagne', 'andorre', 'angola', 'arabie saoudite', 'argentine', 'arménie', 'austalie', 'autriche', 'azerbaïdjan',
                         'bahamas', 'bangladesh', 'belgique', 'benin', 'bermudes', 'biélorussie', 'birmanie', 'bolivie', 'bosnie-herzégovine', 'botwswana', 'brésil', 'bulgarie', 'burkina faso',
                         'cambodge', 'cameroun', 'canada', 'cap vert', 'centrafrique', 'chili', 'chine', 'chypre', 'colombie', 'congo', 'corée du nord', 'corée du sud', 'costa rica', 'croatie', 'cote d\'ivoire', 'cuba',
                         'danemark', 'djibouti', 'dominique','egypte', 'emirats arabes unis', 'equateur', 'espagne', 'estonie', 'etats-unis', 'ethiopie',
                         'france', 'finlande', 'gabon', 'gambie', 'géorgie', 'ghana', 'grèce', 'groenland', 'guatémala', 'guinée', 'guyana','haïti', 'honduras', 'hong kong', 'hongrie','inde', 'indonésie', 'irak', 'iran', 'irlande', 'islande', 'israël', 'italie',
                         'jamaïque', 'japon', 'jordanie','kazakhstan', 'kenya', 'kirghizstan', 'kiribati', 'kosovo', 'koweït', 'laos', 'lesotho', 'lettonie', 'liban', 'liberia', 'libye', 'liechtenstein', 'lituanie', 'luxembourg',
                         'macao', 'macédoine', 'madagascar', 'malaisie', 'malawi', 'maldives', 'mali', 'malte', 'maroc', 'mauritanie', 'mexique', 'micronésie', 'moldavie', 'monaco', 'mongolie', 'monténégro', 'mozambique',
                         'nambie', 'nauru', 'népal', 'nicaragua', 'niger', 'nigeria', 'norvège', 'nouvelle calédonie', 'nouvelle zélande','ouganda','ouzbekistan','pakistan', 'palau', 'palestine', 'panama', 'paraguay', 'pays-bas', 'pérou', 'philippines', 'pologne',
                         'porto rico', 'portugal', 'qatar', 'république tchèque', 'roumanie',
     
                         'royaume-uni', 'russie', 'rwanda',
                         'tadjikistan', 'taïwan', 'tanzanie', 'tchad', 'tchéquie', 'thailande', 'tibet', 'timer oriental', 'togo', 'tonga', 'trinité et tobago', 'tunisie', 'turkménistan','ukraine', 'urugay','vatican', 'vénézuéla', 'vietnam','rien','yémen','zambie', 'zimbabwe'])
     
        database.append(['ail', 'arachide', 'amarante', 'artichaut', 'asperge', 'aubergine', 'asperge', 'avocat', 'bambou', 'bardanne', 'basilic', 'betterave', 'brocoli', 'calebasse', 'cardon', 'carotte', 'céleri', 'chou', 'chou de bruxelles', 'chou chinois', 'chou-fleur', 'christophine', 'ciboulette', 'citrouille',
                         'concombre', 'cornichon', 'courge', 'courgette', 'dattes', 'échalote', 'endive', 'épinard', 'fenouil', 'fève', 'flageolet', 'gingembre', 'rien', 'haricot', 'rien', 'rien', 'rien', 'laitue', 'lentille', 'mâche', 'menthe', 'maïs', 'magnoc', 'navet', 'oignon', 'ortie', 'oseille', 'patate douce',
                         'patate', 'pomme de terre', 'persil', 'petit pois', 'piment', 'poireau', 'pois chiche', 'poivron', 'potiron', 'potimarron', 'quinoa', 'rien', 'radis', 'rhubarbe', 'rutabaga', 'salsifis', 'soja', 'salade', 'tomate', 'topinanbour', 'rien', 'wasabi', 'rien', 'rien', 'rien', 'rien', 'rien']) 
     
        database.append(['abarth', 'ac','alfa romeo', 'alpine','aston martin','audi','austin healey','bentley','bmw','brabus','bugatti','cadillac','caterham','chevrolet','chrysler','citroen','dodge','rien','ferrari','fiat','ford','ford mustang','ford usa','rien','honda', 'hummer','hyundai','rien','jaguar','jeep',
                         'kia','lamborghini','lancia','land rover','lexus','lotus','maserati','mazda','mclaren','mini','mitsubishi','morgan','nissan','opel','peugeot','porsche','rien','renault','rolls-royce','saab','seat','subaru','suzuki','tesla','toyota','triumph','tvr','rien','volkswagen','volvo','rien','rien','rien','rien'])
     
     
        #les lettres dans un array pour pouvoir en sélectionner une aléatoirement
        array_lettres = list("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
     
     
        #Les listes de catégories
        listes = ['Pays','Légumes','Marque de voiture']
        list_type = 0    
     
        #Le timer
        Time = Timer(60, FinDuJeu)
        Time.start()
     
        #boucle infinie, à changer avec le timer.
        while GameContinue:
     
            #on sélectionne la lettre aléatoirement...
            lettre_debut = array_lettres[randint(0,25)]
            #et la liste aussi
            list_type = randint(0,len(listes)-1)
     
     
            #On demande à l'utilisateur d'entrer un mot de la catégorie et de la bonne lettre
            user_text = input('Entrez un mot de la catégorie "{}" commençant par {} : '.format(listes[list_type], lettre_debut))
     
            #On vérifie si il y a bien un mot qui correspond à la lettre.
            is_mot = False
            for mot in database[list_type]:
                if mot[:1].upper() == lettre_debut:
                    is_mot = True
                    break;
            #Si le mot est dans la catégorie, et commence par la bonne lettre: OK, sinon, non.
            if user_text.lower() in database[list_type] and user_text[:1].upper() == lettre_debut:
                Points = Points+1
                print('Le mot correspond. Bravo! Vous avez {} point(s).'.format(Points))
            else:
                if is_mot == False and user_text.upper() == 'RIEN':
                    Points = (Points+1)
                    print("Bien joué, il n'y a aucun mot correspondant.Vous avez {} point(s).".format(Points))
     
                else: 
                    print('Le mot ne correspond pas, essayez encore...');
     
     
     
    print('Bienvenue au petit bac!')
    print('Entrez un mot de la bonne catégorie avec la bonne lettre pour gagner! Vous avez une minute pour entrer le maximum de mots!');
    print('Information: Si vous ne savez pas quoi mettre, mettez "rien". Si la catégorie ne comporte effectivement aucun mot commençant par la lettre demandée, cela vous comptera bon.');
     
    go = input('Entrez du texte pour commencer le jeu et le timer : ') # création de l'input go pour préparer un if/else:
    #Bien entendu, tu peux choisir une façon bien précise de lancer ton programme, comme ça si l'utilisateur ne rentre pas ce que tu veux, le jeu ne se lance pas (c'est pas utile mais ça garni ton input qui servait pas à grand chose ;)
    if go == "":
        demarrer()
    else:
        print("Le jeu n'a pas été lancé")
     
    while FinDuJeu:
        print("\n\nSouhaitez-vous relancer une partie (Y/N) ?")
        reponse = input()
        if reponse == "y" or reponse =="Y":
            GameContinue = True
            Points = 0 #Car sinon tu repars sur le nombre de point de la partie précédente
            demarrer()
        else:
            print("Fin de la partie !")
            FinDuJeu()
            break
    Sinon retire ce qui est en rouge, et rajoute le vert.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    go =input('Entrez du texte pour commencer le jeu et le timer : ')
        demarrer()
    else:
        print("Le jeu n'a pas été lancé")

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    D'acc alors ça marche pour la fonction recommencer, mais pas pour pour début du programme. Ça met toujours "Entrez du texte pour commencer à jouer", et quand j'entre du texte ça ne lance pas la partie et ça me demande si je veux rejouer. Quand j'appuie direct sur entrée sans entrer du texte, là la partie commence.. c'est vraiment bizarre.

    En tout cas merci pour ton aide c'est cool !

  6. #6
    Membre régulier
    Homme Profil pro
    employé
    Inscrit en
    Mars 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Mars 2015
    Messages : 75
    Points : 103
    Points
    103
    Par défaut
    En fait, la méthode if go == "": veut tout simplement dire, si go est égal à aucun espace(entrer) commencer demarrer().

    Si tu veux réellement lancer le programme avec un mot tu peux changer le if go =="" par if go == "speculos" mais en contrepartie l'utilisateur doit taper speculos dans le input !

    Oui j'ai revu en re testant qu'il y avait un soucis de ce côté là, c'est pourquoi je t'ai proposé la solution de retirer le go, car j'ai la flemme d'y mettre le nez

    Content de t'avoir aidé.

    Bonne journée à toi

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Ah d'acc j'avais mal compris !
    Voilà ça marche, merci à toi encore !

    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction de Coherence, mschoherence, besoin d'aide
    Par souf308 dans le forum Signal
    Réponses: 4
    Dernier message: 28/08/2013, 11h06
  2. Besoin d'aide sur les fonction d'interbase
    Par BOUBOU81 dans le forum InterBase
    Réponses: 2
    Dernier message: 05/11/2004, 10h00

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