Probléme avec if
Résolu
Benjamin
-
Benjamin -
Benjamin -
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
Je dois le finir pour mercredi 2 novembre 2016
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 variableerreur = 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 deerreur = 3
de un (doncerreur = 4
maintenant)
Etape 2 : cherche à l'aide deif
etelse if
la valeur de erreur (ici 4)
Etape 3 : applique le dessin associé à la valeur 4 (iciright(90),forward(50)
)
Aider est mon nindo -
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
-