Bon je vous explique, j'ai un "projet" à rendre pour jeudi en informatique (je suis en première) go 15-18 = cancer . 
Voila la consigne:
"Lire et regarder la vidéo sur la page https://pixees.fr/informatiquelycee/n_site/nsi_prem_projet_3.html du site de David Roche.Remarques:
Le fichier dico.txt contient des mots en majuscule. Le joueur pourra entrer des minuscules ou des majuscules (si la lettre A est dans le mot recherché, il faut accepter aussi la lettre a minuscule).
Pour que le joueur puisse proposer une lettre, on utilisera la fonction input qui fera apparaître une fenêtre ("popupwindow"en anglais) dans edupython. Le comportement du jeu sera donc un peu différent de celui de la vidéo, où tout se passe dans la console.
Pour mettre les dessins dans votre code, il suffit de copier-coller le code de la page web dont l'URL est donnée ci-dessus.
Comme toujours, il faut bien penser à toutes sortes de situations: le joueur entre deux fois la même lettre, le joueur entre des minuscules et/ou des majuscules,le joueur indique un caractère qui n'est pas une lettre, le joueur atteint le nombre d'essais autorisés et perd, le joueur gagne."
J'ai moi même tenté quelques essais peu fructueux . 
J'ai oublié de le préciser mais c'est en python. 
go -15 ![]()
J'espère que tu comptes pas faire de l'info si tu galères à faire un bête jeu du pendu ![]()
Go -15 le pyj ![]()
Le 31 mai 2020 à 14:34:17 Polachek a écrit :
J'espère que tu comptes pas faire de l'info si tu galères à faire un bête jeu du pendu

Montre-nous où t'en es au moins, c'est sur quelle fonctionnalité que tu galères ?
Le 31 mai 2020 à 14:38:36 Polachek a écrit :
Montre-nous où t'en es au moins, c'est sur quelle fonctionnalité que tu galères ?
Je galère à récuperer les mots du fichier dico.txt sans qu'il y ait '/n' au début de chaque mots. 
J'ai hâte de voir la gueule de la l1 d'info ![]()
Sinon tu prend une feuille et tu note les différente chose à faire, genre si le joueur entre caractère autres qu'une lettre tu lui indique une erreur, si il entre une majuscule, tu met cette lettre en minuscule, si la lettre n'est pas présente dans le mot, tu passe au dessin suivant, etc. Après tu code
Le 31 mai 2020 à 14:41:04 MouiG a écrit :
Le 31 mai 2020 à 14:38:36 Polachek a écrit :
Montre-nous où t'en es au moins, c'est sur quelle fonctionnalité que tu galères ?Je galère à récuperer les mots du fichier dico.txt sans qu'il y ait '/n' au début de chaque mots.
T'invoques la méthode rstrip() sur un String pour enlever le retour chariot en début ou en fin de chaîne
Si tu fais print("\nANGLE".rstrip()) ça t'affichera ANGLE normalement
Le 31 mai 2020 à 14:44:27 Polachek a écrit :
Le 31 mai 2020 à 14:41:04 MouiG a écrit :
Le 31 mai 2020 à 14:38:36 Polachek a écrit :
Montre-nous où t'en es au moins, c'est sur quelle fonctionnalité que tu galères ?Je galère à récuperer les mots du fichier dico.txt sans qu'il y ait '/n' au début de chaque mots.
T'invoques la méthode rstrip() sur un String pour enlever le retour chariot en début ou en fin de chaîne
Si tu fais print("\nANGLE".rstrip()) ça t'affichera ANGLE normalement
Ca marche ![]()
def lectureFichier():
listeMots = []
fichier = open("dico.txt", "r", encoding="utf-8")
for i in range(1,800):
contenu = fichier.readline()
listeMots.append(contenu.rstrip())
return listeMots
lectureFichier()Je ne comprend pas pourquoi je ne peux pas utiliser la liste "listeMots" dans d'autres fonctions, la console me dit qu'elle n'est pas définie. 
J'aimerais bien mais flemme là.
Le 31 mai 2020 à 14:59:06 MouiG a écrit :
def lectureFichier(): listeMots = [] fichier = open("dico.txt", "r", encoding="utf-8") for i in range(1,800): contenu = fichier.readline() listeMots.append(contenu.rstrip()) return listeMots lectureFichier()Je ne comprend pas pourquoi je ne peux pas utiliser la liste "listeMots" dans d'autres fonctions, la console me dit qu'elle n'est pas définie.
Parce que ta variable listeMots est locale à ta fonction lectureFichier, si tu veux l'utiliser dans tout ton "programme" (en tant que variable globale), déclare la en dehors de ta fonction
Cf http://lptms.u-psud.fr/wiki-cours/index.php/Python:_Port%C3%A9e_des_variables
Le 31 mai 2020 à 15:03:37 Polachek a écrit :
Le 31 mai 2020 à 14:59:06 MouiG a écrit :
def lectureFichier(): listeMots = [] fichier = open("dico.txt", "r", encoding="utf-8") for i in range(1,800): contenu = fichier.readline() listeMots.append(contenu.rstrip()) return listeMots lectureFichier()Je ne comprend pas pourquoi je ne peux pas utiliser la liste "listeMots" dans d'autres fonctions, la console me dit qu'elle n'est pas définie.
Parce que ta variable listeMots est locale à ta fonction lectureFichier, si tu veux l'utiliser dans tout ton "programme" (en tant que variable globale), déclare la en dehors de ta fonction
Cf http://lptms.u-psud.fr/wiki-cours/index.php/Python:_Port%C3%A9e_des_variables
Merci khey j'avance bien grâce à toi ![]()
Je posterais dès que je rencontre un problème.
Go -15 ou Twitter
from random import *
nbEssais = 7
listeMots = []
letter = ""
mot = ""
tab = []
nb = 0
def lectureFichier():
fichier = open("dico.txt", "r", encoding="utf-8")
for i in range(1,800):
contenu = fichier.readline()
listeMots.append(contenu.rstrip())
return listeMots
def motTirage(listeMots):
tirage = randint(1,len(listeMots))
mot = listeMots[tirage]
print(mot)
def saisie():
letter = input()
return letter
def verifLetter(nb,letter,mot):
for i in range(1,nbEssais):
if letter in mot:
print(tab[nb])
print("La lettre est correct.")
else:
nb += 1
print(tab[nb])
print("La lettre est incorrect.")
def dessinPendu(nb):
tab=[
"""
+-------+
|
|
|
|
|
==============
""",
"""
+-------+
| |
| O
|
|
|
==============
"""
,
"""
+-------+
| |
| O
| |
|
|
==============
""",
"""
+-------+
| |
| O
| -|
|
|
==============
""",
"""
+-------+
| |
| O
| -|-
|
|
==============
""",
"""
+-------+
| |
| O
| -|-
| |
|
==============
""",
"""
+-------+
| |
| O
| -|-
| | |
|
==============
"""
]
return tab[nb]
def main():
lectureFichier()
motTirage(listeMots)
saisie()
verifLetter(nb,letter,mot)
dessinPendu(nb)
main()Au niveau de la ligne print(tab[nb]) dans la fonction 'verifLetter' la console m'indique une erreur: 'IndexError: list index out of range' ![]()
Le 31 mai 2020 à 15:19:51 MouiG a écrit :
from random import * nbEssais = 7 lastLetter = "" listeMots = [] letter = "" mot = "" tab = [] nb = 0 def lectureFichier(): fichier = open("dico.txt", "r", encoding="utf-8") for i in range(1,800): contenu = fichier.readline() listeMots.append(contenu.rstrip()) return listeMots def motTirage(listeMots): tirage = randint(1,len(listeMots)) mot = listeMots[tirage] print(mot) def saisie(): letter = input() return letter def verifLetter(nb,letter,mot): for i in range(1,nbEssais): if letter in mot: print(tab[nb]) print("La lettre est correct.") else: nb += 1 print(tab[nb]) print("La lettre est incorrect.") def dessinPendu(nb): tab=[ """ +-------+ | | | | | ============== """, """ +-------+ | | | O | | | ============== """ , """ +-------+ | | | O | | | | ============== """, """ +-------+ | | | O | -| | | ============== """, """ +-------+ | | | O | -|- | | ============== """, """ +-------+ | | | O | -|- | | | ============== """, """ +-------+ | | | O | -|- | | | | ============== """ ] return tab[nb] def main(): lectureFichier() motTirage(listeMots) saisie() verifLetter(nb,letter,mot) dessinPendu(nb) main()Au niveau de la ligne
print(tab[nb])dans la fonction 'verifLetter' la console m'indique une erreur: 'IndexError: list index out of range'
Les tableaux commencent à 0 en Python (et non à 1 comme en Matlab par exemple
)
Du coup ton index out of range c'est parce que t'essaies à un moment de récupérer l'élément tab[7] alors que ton tableau va de tab[0] à tab[6]
Remplace ton for i in range(1,nbEssais): par for i in range(0,nbEssais-1):
Quoi que j'dis de la merde, for i in range (1,nbEssais) avec nbEssais = 7 ça ira de 1 ... 6, donc remplace par for i in range(0,nbEssais):, mais le problème vient d'autre part, faut que je vois ton code en entier
C'est quand tu faisnb += 1
print(tab[nb])
le problème du coup
Au dernier tour de boucle t'as nb := 6, puis tu fais nb+1 donc t'essaies d'afficher tab[7] alors que le dernier élément indexé dans ton tableau c'est tab[6], mais j'comprends pas ta boucle dans verifLetter, le but du pendu c'est pas de demander au joueur de choisir une nouvelle lettre à chaque tour ?