print("Donner un mot")
mot = input()
caché = ["*"]* len(mot)
longueur = len(caché)
alphabet = [1] * 27
vie = 3
print(caché)
while vie > 0:
présence = 0
lettre = input()
if alphabet[(ord(lettre)-96)] == 0:
print("Vous avez déjà demander cette lettre")
else:
alphabet[(ord(lettre)-96)]= 0
for loop in range(len(mot)):
if mot[loop] == lettre:
caché[loop] = lettre
longueur -= 1
présence = 1
if présence == 0:
vie -=1
print(vie)
print("".join(caché), end = "")
if longueur == 0:
break
Voici mon code en python pour créer un pendu de manière assez basique, avez vous quelles modifications pourraient être apporté ( mais en restant dans ce style de programme, plutôt simpliste, sans le "complexifier". Ex: simplifier la forme du programme en simplifiant certaines boucles ou test ce genre de chose ^^)
mieux que if longueur == 0, utiliser if not longueur, idem pour présence et sans accent !
diminuer la complexité de l'algorithme
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Merci beaucoup pour ta réponse, comment marche enumerate? Et en quoi la présence d'accent dans les variables peut-être gênante (juste pour comprendre le fonctionnement, pas que je doute en tes conseils).
Et je vais suivre le conseil d'Einstein "pose une question et tu seras bêtes une seconde, ne la pose pas et tu sera bête toute ta vie" : qu'est ce qu'une "constante", j'avoue ne pas avoir le souvenir d'avoir vu ce terme dans les cours que j'ai pu lire
Pourquoi ne pas se servir de mes mots clés pour faire une recherche, afin d'éviter d'écrire ce qui a été écris des millions de fois ?
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
C'est ce que je compte faire mais je trouve logique d'expliquer les choses lorsque l'on conseille / corrige les personnes. Enfin c'est un simple avis, donc personnel après à chacun ça façon de voir les choses et de faire les choses
Eh bien faîtes votre recherche et si vous pouvez prouver le contraire, j'expliquerai pourquoi ces remarques.
Les choses sont expliquées dans les tutoriels, il faut prendre le temps de les lire pour ajouter à vos compétences de la culture.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Ton programme est plutôt correct, il marche, c'est déjà ça et tu as compris la logique. Mais ça reste améliorable.
Le point le plus gênant je trouve est de travailler avec des caractères via leur code ASCII (tes (ord(lettre)-96).
J'évite les identificateurs avec des lettres non ascii, ça pourrait poser des problèmes de portabilité et les accents sont propres à une langue. Mais je pourrais m'y faire.
Pour gérer les lettres déjà proposées, fais tout simplement un if lettre in temp où temp est ton mot en cours de découverte
Si tu veux un code plus pythonnique, tu peux utiliser enumerate, voir ici (c'est justement un pendu mais en Tkinter).
Pourquoi end = " ?
Le premier affichage du mot est non pertinent (tu affiches une liste).
Tu peux :
améliorer l'interface et l'interactivité
gérer les exceptions que ton code lève
éviter le break final
gérer les majuscules et les minuscules voire les accents dans le mot à découvrir
continuer le jeu qui reste très partiel
Il serait possible aussi d'utiliser un dictionnaire qui répertorie les indices des lettres du mot inconnu. Ça t'évite la boucle for. Mais pour un programme aussi simple qu'un pendu, je ne sais pas si vaut la peine.
Merci beaucoup pour ta réponse PascalOrtiz, je m'y pencherai plus en détail (notamment avec le liens que tu as fournis) un peu plus tard !
Pendu
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Découverte Python Doc Tkinter Les chaînes de caractères