Besoin d'aide pour un pendu

Besoin d'aide pour un pendu - Python - Programmation

Marsh Posté le 25-12-2019 à 19:14:02    

Bonjour !  
 
Je suis débutant en info et je dois réaliser un pendu (en mot entier) pour un devoir.  
J'ai réussi à tout coder sauf un petit quelque chose de bien utile : je n'arrive pas à séquencer l'affichage du pendu. CAD qu'à la première erreur, la barre de base du pendu se dessine mais à la deuxième faute, le reste du pendu se dessine d'un coup et j'ai beau essayé, avec les connaissances que j'ai, je n'arrive pas à le séquencer en faisant : erreur => un trait, erreur => un trait, etc. comme dans le jeu du pendu, quoi !
 
Je vous mets mon code ici, j'espère que vous pourrez m'aider  :)  
 
print("J'espère que tu as bien compris ! Pour vérifier cela, on va faire un petit jeu." )
print("Comment dit-on Jouet en Chat ?" )
choixJoueur = input("Choisis entre les différents mots du dictionnaire :" )
if choixJoueur == "RrrrRrrrRrrr":
    print("Bravo, c'est ça !" )
elif choixJoueur != "RrrrRrrrRrrr":
    from turtle import *
    color("black" )
    speed(10)
    pensize(4)
    forward(80)
    backward(40)
    ("Essaies encore" )
    while choixJoueur != "RrrrRrrrRrrr":
        choixJoueur = input("Réessayes :" )
        if choixJoueur == "RrrrRrrrRrrr":
            print("Bravo, c'est ça !" )
        else:
            from turtle import *
            color("black" )
            speed(10)
            pensize(4)
            forward(80)
            backward(40)
            left(90)
            forward(200)
            right(90)
            forward(100)
           
            right(90)
            forward(20)            
 
            left(90)
            forward(25)
            right(90)
            forward(25)
            right(90)
            forward(50)
            right(90)
            forward(25)
            right(90)
            forward(25)
         
            forward(25)
            right(90)
            forward(25)
            right(90)
            forward(25)
            left(90)
 
            forward(20)
 
            right(90)
            forward(25)
            left(90)
            forward(100)
            left(90)
            forward(50)
            left(90)
            forward(100)
            left(90)
            forward(25)
             
 
            left(180)
            forward(25)
            right(90)
            forward(25)
            left(60)
            forward(60)
 
            left(180)
            forward(60)
            right(60)
            forward(25)
            left(90)
            forward(50)
            left(90)
            forward(25)
            right(60)
            forward(60)
 
            left(180)
            forward(60)
            right(120)
            forward(75)
            left(90)
            forward(16)
            right(90)
            forward(50)
            left(180)
            forward(50)
 
            right(90)
            forward(16)
            right(90)
            forward(50)

Reply

Marsh Posté le 25-12-2019 à 19:14:02   

Reply

Marsh Posté le 26-12-2019 à 14:06:06    

Il est bizarre ce code de pendu.  
Et ton code est tronqué, assure toi de le poster entier et dans des balises qui vont bien pour la lisibilité.


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 02-01-2020 à 15:12:00    

Déjà, je mettrais la bonne réponse dans une variable histoire de pas la répéter 4 fois dans le code.
Pourquoi tu considères différemment le 1er essai des autres ? Du coup, quand on voit ton code, c'est assez évident pourquoi tout se dessine d'un coup après la première erreur :/ Tu dois ajouter une variable qui compte le nb d'essais et dessiner la partie du pendu en conséquence. Quand le nb d'essais est dépassé, c'est la fin de la partie et c'est perdu :o  
 
Coder, c'est avant tout arriver à mettre sous la forme d'un algorithme ce qu'on veut faire pour obtenir le résultat voulu. Une fois cette étape faite, le plus dur est passé. Car après, c'est plus qu'une histoire de traduction dans une autre langue (ici, le langage de dév choisi, Python). Là, on voit clairement que l'algo est pas du tout clair dans ta tête.


Message édité par rufo le 02-01-2020 à 15:14:16

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 02-01-2020 à 15:49:15    

Merci pour vos réponses !  
 
@Rufo, Je vois complètement ce que tu veux dire mais justement j'ai déjà cherché une boucle permettant cela mais j'avoue que je ne sais pas quelle condition mettre derrière le while à la place du while True, j'ai eu beau essayer en anglais toutes les traductions de "essais" genre "times", "x time condition" mais j'ai pas réussi à trouver un exemple sur internet d'une boucle while avec cette condition. J'en suis même venu à utiliser la boucle for dans l'espoir que ça fonctionne de façon divine... C'est pour ça que finalement je vous ai mis ce code en espérant le répéter plusieurs fois vu que je ne trouve pas cette variable.  
 
Mais si tu l'as, est-ce que tu pourrais me donner la fameuse formule magique d'une condition d'essai à utiliser avec un while, stp ?  
 
Merci sinon  :)  

Reply

Marsh Posté le 02-01-2020 à 16:10:54    

Je dois avouer que tu me fais un peu peur si tu ne vois pas comment on fait pour compter le nb d'erreurs :/
Tu crées une variable (tu la nommes comme tu veux pour qu'elle soit parlante), tu l'initialises à 0 en début du programme et à chaque essai foiré du user, tu incrémentes cette variable. Arrivée au nombre d'essais max (qui doit correspondre au nb de traits à faire pour dessiner entièrement ton pendu), tu stoppes.
En pseudo-code, tu dois avoir un truc du genre (je pars du principe que t'as 8 essais max) :
iNbEssais = 0
bGagne = FAUX
sBonneReponse = "xxxxxx"
Tant que ((iNbEssais < 8) ET (!bGagne)) Faire    
    "Rentrer la réponse" --> sReponse
    Si (sReponse == sBonneReponse) Alors
        bGagne = VRAI
    Sinon
        iNbEssais++
        Dessiner partie du pendu correspondant à iNbEssais
     Fin Si
Fin Tant que
 
Si bGagne Alors
    "gagné"
Sinon
    "Perdu"
Fin Si
 
Voilà en gros l'idée générale


Message édité par rufo le 05-01-2020 à 09:44:31

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 02-01-2020 à 17:19:54    

Okay, super merci Rufo !  
Sinon, tu n'as pas à avoir peur, j'ai jamais fait du code auparavant et j'ai pas eu de cours non plus donc pour tout dire j'ai commencé avec un livre flou sur le sujet il y a moins de 2 mois ahah
Merci encore en tous cas !

Reply

Marsh Posté le 02-01-2020 à 19:19:09    

Je ne parle pas de coder, mais de l'étape de concevoir l'algorithme. Ca, c'est de la logique pure et simple (je parle pour des programmes relativement simple, je parle pas d'IA ou d'algos d'optimisation qu'on voit en école d'ingé). Dès lors que tu connais les boucles "tant que ... faire" et "pour" + les conditions "si...alors...sinon" + les variables, ben faire ce genre d'algo en pseudo-code, c'est facile.
C'est le genre de truc que je codais à 12 en BASIC sur mon Amiga 500 ou un peu plus tard au lycée sur ma CASIO ou ma TI-92 :o Quand j'ai débuté, j'ai regardé des programmes pas trop compliqués et j'ai essayé de comprendre ce que ça faisait par déduction mais j'avais la logique. A cette époque, y'avait pas internet et pas beaucoup de bouquins accessibles (années 90) :o
La programmation fait partie de ton cursus scolaire ? Tu fais quoi comme études ?
Je te recommande d'aller faire un tour sur openclassroom, tu devrais y trouver ton bonheur ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 03-01-2020 à 20:16:26    

OK rufo,  
alors déjà on voit bien que tu n'y connais rien. La variable DOIT être parlante. En plus, tout le code que tu as affiché est en français alors que la personne du dessus demande des renseignements pour un programme en anglais, comme tous les vrais codeurs.  
Ensuite dans ton dernier message, je ne comprends pas l'utilité de l'envoyer sur open classroom alors qu'elle demande simplement de l'aide ici. Tu pourrais lui expliquer autrement sans forcément être aussi condescendant.  
 
PS: mdr coder sur une Amiga 500 je le faisais déjà à 6 ans, pas besoin d'être fière

Reply

Marsh Posté le 04-01-2020 à 14:44:40    

pythonxxxxxxxxxx a écrit :

OK rufo,  
alors déjà on voit bien que tu n'y connais rien. La variable DOIT être parlante. En plus, tout le code que tu as affiché est en français alors que la personne du dessus demande des renseignements pour un programme en anglais, comme tous les vrais codeurs.  
Ensuite dans ton dernier message, je ne comprends pas l'utilité de l'envoyer sur open classroom alors qu'elle demande simplement de l'aide ici. Tu pourrais lui expliquer autrement sans forcément être aussi condescendant.  
 
PS: mdr coder sur une Amiga 500 je le faisais déjà à 6 ans, pas besoin d'être fière


Belle introduction pour ton tout premier post sur le forum, ça donne envie de voir la suite :love: !  
C'est sûr qu'un algo en anglais est tellement plus parlant et efficace, tu as raison, c'est vraiment un gland ce rufo.
Et tu arrives à parler de condescendance juste après ça en plus, respect :jap:.


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 05-01-2020 à 21:01:07    

pythonxxxxxxxxxx a écrit :

OK rufo,  
alors déjà on voit bien que tu n'y connais rien. La variable DOIT être parlante. En plus, tout le code que tu as affiché est en français alors que la personne du dessus demande des renseignements pour un programme en anglais, comme tous les vrais codeurs.  
Ensuite dans ton dernier message, je ne comprends pas l'utilité de l'envoyer sur open classroom alors qu'elle demande simplement de l'aide ici. Tu pourrais lui expliquer autrement sans forcément être aussi condescendant.  
 
PS: mdr coder sur une Amiga 500 je le faisais déjà à 6 ans, pas besoin d'être fière


As tu lu la signature de Rufo ? Ce sont des liens vers les logiciels qu'il a créés. Ca, plus le fait qu'il intervient ici de façon très pertinente depuis de nombreuses années devraient suffire à te démontrer que ce n'est pas vraiment le premier venu.
En revanche, toi tu débarques, t'es incapable de faire la différence entre code et pseudo-code, et t'exposes tes 4 vérités sous couvert que t'as codé sur A500 à l'âge de 6 ans.  
 
Va donc fêter la nouvelle année chez les télétubbies une petite semaine, histoire de t'apprendre l'humilité.


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 05-01-2020 à 21:01:07   

Reply

Marsh Posté le 07-01-2020 à 13:19:41    

A la décharge de notre nouvel "ami", j'avais fait une faute de frappe dans mon post sur le nommage des variables, faute que j'ai corrigée depuis.
J'avais écrit initialement "Tu crées une variable (tu la nommes comme tu veux pas qu'elle soit parlante)" ce qui n'est pas très français. Je voulais bien entendu dire "Tu crées une variable (tu la nommes comme tu veux pour qu'elle soit parlante)".
 
Le PS de pythonxxxxxxxxxx ne me paraît pas très crédible et me laisserait penser à un concours de celui qui pisse le plus loin. Le manque de prise de recul et le ton employé pour son premier post me laisse à penser qu'il s'agit d'un homme de moins de 30 ans. Du coup, avoir codé dès 6 ans sur un Amiga 500, produit entre 1987 et 1991, me paraît très peu probable, surtout pour un développeur qui ne fait pas la différence entre du code source et du pseudo-code. Ajouter à cela que coder dès 6 ans à cette époque n'était pas très courant et il fallait déjà savoir lire  :whistle: Remarque, ça peut être une nouvelle méthode pédagogique : faire lire des bouquins d'apprentissage du BASIC pour apprendre aux enfants de CP à lire. :D
 
Et comme Harkonnen le soulignait, pythonxxxxxxxxxx, si tu prends la peine d'aller sur l'un des liens de ma signature, tu seras heureux de voir que je suis un "vrai" développeur puisque tous mes logiciels sont codé en anglais (et même leur doc).  
[mode troll /on]
Du coup, il confirme ce que tout le monde pense ici des développeurs Windev : ce ne sont pas des vrais développeurs puisque ces cons, ils codent en français.  :o  
[mode troll /off]


Message édité par rufo le 07-01-2020 à 13:20:07

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 07-01-2020 à 21:22:24    

OK rufo,  
alors déjà on voit bien que tu n'y connais rien, on peut faire du windev en anglais.

Spoiler :

[:cupra]
Et sinon je te trouve bien indulgent, j'avais vu le mot manquant dans ton post mais ça ne justifie rien de ce qui a suivi.
Mais bref, l'incident est clos et notre nouveau copain ne va peut être jamais se repointer après ce chaleureux accueil. Bien d'accord avec le freste de ton analyse sinon, et s'il a plus de 30 ans c'est encore pire :o



---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 07-01-2020 à 22:22:22    

Oui, incident clos et, salander98, désolé pour ce HS et pollution de ton topic, le 1er sur ce forum. Faut pas que ça t'effraie : promis, c'est heureusement pas comme ça que ça se passe dans la large majorité des cas. :hello:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed