Pendu python
Fermé
_juan75
-
Modifié le 2 nov. 2021 à 15:12
_juan75 Messages postés 12 Date d'inscription mardi 2 novembre 2021 Statut Membre Dernière intervention 8 novembre 2021 - 8 nov. 2021 à 21:06
_juan75 Messages postés 12 Date d'inscription mardi 2 novembre 2021 Statut Membre Dernière intervention 8 novembre 2021 - 8 nov. 2021 à 21:06
A voir également:
- Pendu python
- Jeu du pendu - Télécharger - Vie quotidienne
- Citizen code python avis - Accueil - Outils
- Trouver la position d'un élément dans une liste python ✓ - Forum Python
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
13 réponses
yg_be
Messages postés
23352
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 novembre 2024
Ambassadeur
1 554
Modifié le 2 nov. 2021 à 15:59
Modifié le 2 nov. 2021 à 15:59
bonjour,
avant tout:
- utilise les balises de code quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
- ajoute des commentaires pour expliquer à quoi servent tes fonctions
- ajoute des print() dans ton code pour comprendre ce qu'il fait.
avant tout:
- utilise les balises de code quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
- ajoute des commentaires pour expliquer à quoi servent tes fonctions
- ajoute des print() dans ton code pour comprendre ce qu'il fait.
_juan75
Messages postés
12
Date d'inscription
mardi 2 novembre 2021
Statut
Membre
Dernière intervention
8 novembre 2021
2 nov. 2021 à 16:01
2 nov. 2021 à 16:01
Merci,
désolé je sais pas dutout comment utiliser les "balises" pour mettre du code.
J'ai déjà utiliser des print() pour tester mes fonctions je les ai juste enlever pour que se soit plus claire
désolé je sais pas dutout comment utiliser les "balises" pour mettre du code.
J'ai déjà utiliser des print() pour tester mes fonctions je les ai juste enlever pour que se soit plus claire
yg_be
Messages postés
23352
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 novembre 2024
1 554
2 nov. 2021 à 16:04
2 nov. 2021 à 16:04
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
ce sera plus clair avec les commentaires, avec les print(), et avec ce qu'affichent les print().
ce sera plus clair avec les commentaires, avec les print(), et avec ce qu'affichent les print().
_juan75
Messages postés
12
Date d'inscription
mardi 2 novembre 2021
Statut
Membre
Dernière intervention
8 novembre 2021
Modifié le 2 nov. 2021 à 16:26
Modifié le 2 nov. 2021 à 16:26
# debut du jeu from random import randint #C est la liste de mot qu on établie def liste_mots(): liste=["nsi","math","ordinateur"] return liste #print(liste_mots()) #C est la fonction qui demande le niveau souhaité(donc le nombre de vies), et qui établie le #nombre de vies en fonction de la réponse def difficulte(): vie = 12 v = 0 while v != 1 and v != 2 and v != 3: v = int(input("quelle niveau : 1,2 ou 3 ?")) if v == 1: vie=12 print('niveau 1 ->',vie,'vie') elif v == 2: vie=6 print('niveau 2 ->', vie, 'vies') elif v == 3: vie = 3 print('niveau 3 ->', vie, 'vies') return vie #print(difficulte()) #cette fonction transforme le mot choisie dans la liste en mot a tiret def tiret_mot(mot): n = len(mot) res='' for i in range (n): res = res + "-" return res #print(tiret_mot()) #cette fonction tire un mot au hasard un mot dans la liste def choix_mot(liste): return (liste[randint(0,len(liste)-1)]) #print(choix_mot()) #Cette fonction prend l état du jeu à un moment donné et renvoie # - le nouveau nombre de vies # - le nouveau mot à tiret (éventuellement modifié si l on a trouvé une nouvelle lettre) #-Et le nouveau score ( en principe ) def tour_de_jeu(lettre, mot_a_tir, mot_initial,score): mot_a_tir = "" while score > 0: for i in mot_initial: if i in lettre: mot_a_tir = mot_a_tir + lettre else: mot_a_tir = mot_a_tir + "-" score = score -1 print("il vous restes",score + 3,"vies") return mot_a_tir #print(tour_de_jeu("a",----,"jean",10)) #C est la fonction principal, c est la ou on va demander une lettre à l utilisateur, et ou on va mettre la fonction tour_de_jeu. def jeu(): mot_a_trouver = choix_mot(liste_mots()) score = difficulte() mot_a_tiret = tiret_mot(mot_a_trouver) while score > 0: lettre = input("proposez une lettre :") print(tour_de_jeu(lettre,mot_a_tiret,mot_a_trouver,score)) if score == 0 and mot_a_tiret != mot_a_trouver: print("perdu !") elif score >= 0 and mot_a_tiret == mot_a_trouver: print("Bien joué !") print(jeu())
yg_be
Messages postés
23352
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 novembre 2024
1 554
2 nov. 2021 à 17:17
2 nov. 2021 à 17:17
as-tu ajouté assez de print() pour comprendre ce qui se passe?
_juan75
Messages postés
12
Date d'inscription
mardi 2 novembre 2021
Statut
Membre
Dernière intervention
8 novembre 2021
2 nov. 2021 à 17:23
2 nov. 2021 à 17:23
oui oui je comprend très bien ce qui ce passe,
le problème c'est vraiment ce que j'ai expliqué au début
le problème c'est vraiment ce que j'ai expliqué au début
yg_be
Messages postés
23352
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 novembre 2024
1 554
2 nov. 2021 à 17:26
2 nov. 2021 à 17:26
Ajoute des print() pour comprendre pourquoi ton code ne fait pas ce que tu imagines qu'il devrait faire.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
_juan75
Messages postés
12
Date d'inscription
mardi 2 novembre 2021
Statut
Membre
Dernière intervention
8 novembre 2021
2 nov. 2021 à 17:42
2 nov. 2021 à 17:42
à chaque ligne tu veux dire parce que j'ai essayé déjà pour chaque fonction mais sa m'avance pas beaucoup.
yg_be
Messages postés
23352
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 novembre 2024
1 554
Modifié le 2 nov. 2021 à 18:12
Modifié le 2 nov. 2021 à 18:12
suffisamment pour que tu comprennes ce qui ne marche pas.
à ton avis que fait ce programme?
à ton avis que fait ce programme?
def ajoutun(x): x=x+1 print(x) x=0 ajoutun(x) ajoutun(x) ajoutun(x)
_juan75
Messages postés
12
Date d'inscription
mardi 2 novembre 2021
Statut
Membre
Dernière intervention
8 novembre 2021
3 nov. 2021 à 18:47
3 nov. 2021 à 18:47
normalement :
1
2
3
1
2
3
yg_be
Messages postés
23352
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 novembre 2024
1 554
4 nov. 2021 à 08:55
4 nov. 2021 à 08:55
maintenant, teste.
_juan75
Messages postés
12
Date d'inscription
mardi 2 novembre 2021
Statut
Membre
Dernière intervention
8 novembre 2021
5 nov. 2021 à 09:46
5 nov. 2021 à 09:46
ah non effectivement ça print :
1
1
1
1
et donc de quel fonction est liée ce problèmes ?
1
1
1
1
et donc de quel fonction est liée ce problèmes ?
yg_be
Messages postés
23352
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 novembre 2024
1 554
5 nov. 2021 à 09:56
5 nov. 2021 à 09:56
ajoute des print() pour comprendre le comportement de ce petit programme.
_juan75
Messages postés
12
Date d'inscription
mardi 2 novembre 2021
Statut
Membre
Dernière intervention
8 novembre 2021
5 nov. 2021 à 09:55
5 nov. 2021 à 09:55
j'ai un peu modifié le programme.
# debut du jeu from random import randint #C'est la liste de mot qu on établie def liste_mots(): liste=["nsi","math","ordinateur"] return liste #print(liste_mots()) #C'est la fonction qui demande le niveau souhaité(donc le nombre de vies), et qui établie le nombre de vies en fonction de la réponse def difficulte(): vie = 12 v = 0 while v != 1 and v != 2 and v != 3: v = int(input("quelle niveau : 1,2 ou 3 ?")) if v == 1: vie=12 print('niveau 1 ->',vie,'vie') elif v == 2: vie=6 print('niveau 2 ->', vie, 'vies') elif v == 3: vie = 3 print('niveau 3 ->', vie, 'vies') return vie #print(difficulte()) #cette fonction transforme le mot choisie dans la liste en mot a tiret def tiret_mot(mot): n = len(mot) res='' for i in range (n): res = res + "-" return res #print(tiret_mot()) #cette fonction tire un mot au hasard un mot dans la liste def choix_mot(liste): return (liste[randint(0,len(liste)-1)]) #print(choix_mot()) #Cette fonction prend l'état du jeu à un moment donné et renvoie # - le nouveau nombre de vies # - le nouveau mot à tiret (éventuellement modifié si l'on a trouvé une nouvelle lettre) #-Et le nouveau score ( en principe ) def tour_de_jeu(lettre, mot_a_tir, mot_initial,score): mot_a_tir = "" for i in mot_initial: if i in lettre: mot_a_tir = mot_a_tir + lettre print("il vous restes", score, "vies") return mot_a_tir else: mot_a_tir = mot_a_tir + "-" score = score -1 print("il vous restes",score,"vies") return mot_a_tir #print(tour_de_jeu("a",----,"jean",10)) #C'est la fonction principal, c'est la ou on va demander une lettre à l'utilisateur, et ou on va mettre la fonction tour_de_jeu. def jeu(): mot_a_trouver = choix_mot(liste_mots()) score = difficulte() mot_a_tiret = tiret_mot(mot_a_trouver) while score > 0: lettre = input("proposez une lettre :") print(tour_de_jeu(lettre,mot_a_tiret,mot_a_trouver,score)) if score == 0 and mot_a_tiret != mot_a_trouver: print("perdu !") elif score >= 0 and mot_a_tiret == mot_a_trouver: print("Bien joué !") print(jeu())
yg_be
Messages postés
23352
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 novembre 2024
1 554
5 nov. 2021 à 09:57
5 nov. 2021 à 09:57
tout fonctionne bien maintenant?
_juan75
Messages postés
12
Date d'inscription
mardi 2 novembre 2021
Statut
Membre
Dernière intervention
8 novembre 2021
Modifié le 5 nov. 2021 à 14:18
Modifié le 5 nov. 2021 à 14:18
et bien non j'ai toujours le problème au niveau de la fonction tour_de_jeu
je l'ai extrait du programme pour la modifier plus facilement et pour avoir un meilleur angle de vue mais je n'arrive toujours pas à cerner le problème.
J'ai déjà essayer de changer les indentations...ect rien à faire avec mes connaissances.
Je pense qu'il faudrait créé une boucle dans la fonction tour_de_jeu ????
je l'ai extrait du programme pour la modifier plus facilement et pour avoir un meilleur angle de vue mais je n'arrive toujours pas à cerner le problème.
J'ai déjà essayer de changer les indentations...ect rien à faire avec mes connaissances.
Je pense qu'il faudrait créé une boucle dans la fonction tour_de_jeu ????
def tour_de_jeu(lettre, mot_a_tir, mot_initial,score): while score > 0: for i in mot_initial: if i in lettre: mot_a_tir = mot_a_tir + lettre print("il vous restes", score, "vies") return mot_a_tir else: mot_a_tir = mot_a_tir + "-" score = score -1 print("il vous restes",score,"vies") return mot_a_tir
_juan75
Messages postés
12
Date d'inscription
mardi 2 novembre 2021
Statut
Membre
Dernière intervention
8 novembre 2021
7 nov. 2021 à 17:02
7 nov. 2021 à 17:02
J'ai résolu mon problèmes, mais j'ai encore un problème avec cette fonction qui se réinitialise à chaque tours :
def tour_de_jeu(lettre,mot_a_tir,mot_initial,score): new_mot = "" trouve = False for i in range(len(mot_initial)): if mot_initial[i]==lettre: new_mot=new_mot+lettre trouve = True else: new_mot = new_mot + mot_a_tir[i] if not(trouve): score = score -1 print(new_mot,"il vous reste",score,"vies") return "" #print(tour_de_jeu("a","----","Jean",4))
yg_be
Messages postés
23352
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 novembre 2024
1 554
7 nov. 2021 à 17:53
7 nov. 2021 à 17:53
"qui se réinitialise"?
_juan75
Messages postés
12
Date d'inscription
mardi 2 novembre 2021
Statut
Membre
Dernière intervention
8 novembre 2021
8 nov. 2021 à 00:27
8 nov. 2021 à 00:27
Dès que l'on redemande une lettre, le mot et le score se réinitialise oui
yg_be
Messages postés
23352
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 novembre 2024
1 554
8 nov. 2021 à 08:56
8 nov. 2021 à 08:56
as-tu suivi ma suggestion en #15? comprends-tu le soucis avec le petit programme que je t'ai suggéré d'analyser et de corriger?
_juan75
Messages postés
12
Date d'inscription
mardi 2 novembre 2021
Statut
Membre
Dernière intervention
8 novembre 2021
8 nov. 2021 à 21:05
8 nov. 2021 à 21:05
Ah d'accord donc enfaite quand ma fonction se lance puis se relance elle ne peut pas prendre en argument les modifications faites la première fois c'est ça ?
_juan75
Messages postés
12
Date d'inscription
mardi 2 novembre 2021
Statut
Membre
Dernière intervention
8 novembre 2021
8 nov. 2021 à 21:06
8 nov. 2021 à 21:06
et donc je devrai faire en sorte non pas de relancer la fonction à chaque fois, mais quelle tourne jusqu'au résultat souhaité ?