Probléme avec if

Résolu/Fermé
Benjamin - Modifié par crapoulou le 26/10/2016 à 20:43
 Benjamin - 27 oct. 2016 à 17:31
Bonjour , pour mon lycée je dois réaliser un jeu qui est le pendu
Et j'ai réussi à demander le mot que on veux utiliser , le test de si la lettre est présente mais si elle ne l'est pas alors on dessine une partie du pendu , et je voulais savoir si vous saviez comment faire une suite du genre
premier trait tracé, dessiner alors tracer le deuxième
deuxième trait tracé alors tracer le troisième
...

voilà le programme que j'ai commencé à faire
from turtle import *

#Défintion du jeu
Mot=input('Rentrer un mot qui contient 10 lettres ou moins')
Mot=str.lower(Mot)
Long_Mot= len(Mot)
print (Long_Mot)



while Long_Mot > 10:
    Mot=input('Rentrer un mot qui contient 10 lettres ou moins')
    Mot=str.lower(Mot)
    Long_Mot= len(Mot)
    print (Long_Mot)



for Long_Mot in range (0,10):
        Lettre=input ("Quel lettre proposez vous")
        if Lettre in Mot:
            print ('la lettre' , Lettre, ' est dans le mot ')
        else:
            essai1=left(180),forward(50)
            essai2=right(90),forward(300)
            essai3=right(90),forward(100)
            essai4=right(90),forward(50)
            essai5=right(90),circle(20)
            essai6=up(),left(90),forward(40),down(),forward(100)
            essai7=left(180),forward(50),left(60),forward(50)
            essai8=left(180),forward(50),left(60),forward(50)
            essai9=left(180),forward(50),left(60),forward(50),left(60),forward(50)
            essai10=left(180),forward(50),left(60),forward(50)



Je dois le finir pour mercredi 2 novembre 2016

3 réponses

Salut,

Je présume que :
essai1=left(180),forward(50)
essai2=right(90),forward(300)
essai3=right(90),forward(100)
essai4=right(90),forward(50)
essai5=right(90),circle(20)
essai6=up(),left(90),forward(40),down(),forward(100)
essai7=left(180),forward(50),left(60),forward(50)
essai8=left(180),forward(50),left(60),forward(50)            essai9=left(180),forward(50),left(60),forward(50),left(60),forward(50)
essai10=left(180),forward(50),left(60),forward(50)

sont les 10 étapes pour dessiner un pendu.
Le problème actuellement c'est que si l'utilisateur rentre une mauvaise lettre, le pendu est dessiné entièrement. En plus, les commandes Turtle ne retournent pas de données, tu ne peux pas les stocker dans des variables.
Ce que tu peux faire, c'est créer une variable
erreur = 0
dont tu augmentes la valeur de 1 chaque fois que l'utilisateur fait une erreur.
Ensuite, teste la valeur de erreur pour regarder ce que tu dois dessiner.
Enfin, dessine l'étape à laquelle est le joueur.

Par exemple : le joueur a commis 3 erreur (
erreur = 3
) et il en fait une autre.
Etape 1 : augmenter la valeur de
erreur = 3
de un (donc
erreur = 4
maintenant)
Etape 2 : cherche à l'aide de
if
et
else if
la valeur de erreur (ici 4)
Etape 3 : applique le dessin associé à la valeur 4 (ici
right(90),forward(50)
)

Aider est mon nindo
1
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 259
26 oct. 2016 à 22:16
Salut,
si tu as déjà entendu parler de liste, de tuple et de fonction, voila une solution possible :
#!/usr/bin/python
#! -*- encoding: utf-8 -*-
from turtle import *

#Définition du dessin
tracer_data = [(left,180,forward,50),
        (right,90,forward,300),
        (right,90,forward,100),
        (right,90,forward,50),
        (right,90,circle,20),
        (up,None,left,90,forward,40,down,None,forward,100)]
        #etc...

def tracer(n):
    if n>=len(tracer_data):
        print ("Perdu !")
        exit()

    dessin = tracer_data[n]
    i=0
    while i < len(dessin):
        if dessin[i+1] is not None :
            dessin[i](dessin[i+1])
        else:
            dessin[i]()
        i+=2

#Défintion du jeu
Long_Mot= 11
while Long_Mot > 10:
    Mot=raw_input('Rentrer un mot qui contient 10 lettres ou moins')
    Mot=str.lower(Mot)
    Long_Mot= len(Mot)
    print (Long_Mot)

erreur = 0
for Long_Mot in range (0,10):
        Lettre=raw_input ("Quel lettre proposez vous")
        if Lettre in Mot:
            print ('la lettre' , Lettre, ' est dans le mot ')
        else:
            tracer(erreur)
            erreur+=1


1
Merci à vous deux
Ca m'a beaucoup aidé
0