CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Python] Le jeu du pendu

Pseudo supprimé
Pseudo supprimé 11 juin 2014 à 18:58:01

haa je comprend mieux pourquoi tout le monde fait de long mots pour les variables ! :D :rire:
mais donc dans :

def verifMot():
mot = ' '
for lettres in mot_a_trouve:
if lettres in liste_lettres:
mot += lettres
else:
mot += '*'
return mot

Le def verif et le for signifient quoi ?

Toonjez
Toonjez
Niveau 10
11 juin 2014 à 18:59:49

Je l'ai commenté :
http://pastebin.com/6h3hS9QJ

+1 pour les commentaires, perso je pense jamais à en mettre ou alors c'est des commentaires dignes de Captain Obvious :peur:

Toonjez
Toonjez
Niveau 10
11 juin 2014 à 19:01:13

Le truc pour les noms de variables, c'est qu'il faut qu'ils soient parlant, mais pas trop long.

linux13-04
linux13-04
Niveau 8
11 juin 2014 à 20:34:35
  1. for lettres in mot_a_trouve: # Pour chaque lettres dans le mot à trouver

obvious :hap:

  1. mot += lettres # On ajoute la lettre dans la variable 'mot'

Obvious :hap:

D'où l'interet des super-commentaires, pour résumer les commentaires simples :oui:

Pseudo supprimé
Pseudo supprimé 11 juin 2014 à 22:10:58

donc si (L) est mon input de lettre choisie par le joueur et (r) le mot a deviner, je devaris faire :

if L in r :
print("Bravo tu as trouvé un lettre")

et ? je comprend rien ! :snif2:

Toonjez
Toonjez
Niveau 10
12 juin 2014 à 00:07:49

Tu peux faire ça, mais ça va pas faire avancer les choses :hap:
Explique ce que tu ne piges pas.

Et t'inquiète pas, tout le monde passe part cette phase de 'Je comprend rien ! :snif2: '.
Prend une feuille et crayon, perso ça m'aide vachement de faire des schémas, d'écrire le programme en français etc...

Pseudo supprimé
Pseudo supprimé 12 juin 2014 à 08:24:33

Tout mon pendu marche, le choix au hazard du on, le fait de mettre la lettre choisie dans la liste des lettre déjà choisie, le fait que lorsque le joueur choisi un lettre déjà hoirie, ça lui dit et ça ne change rien, le pendu dessin du pendu qui s'agrandi j ai aussi, mais je vaudrais faire les petit - - - - - - - (qui se créent automatiquement avec le bon nombre de lettre avec len mot) et qui se remplacent par les lettre une fois dites par le joueur( et c'est ça que j arrive pas :( )

linux13-04
linux13-04
Niveau 8
12 juin 2014 à 09:42:55

en français :

etat mot = nombre de lettre du mot à trouver * "_"

En python on ne peut pas modifier une chaine à l'arrache du genre mot[5] = 'e', il faut donc crééer une nouvelle chaine :

nouvel_etat_mot = ""

pour chaque lettre de mot_a_trouver:
si la lettre est dans la liste des lettres proposées on ajouter cette lettre à nouvel_etat_mot, sinon on ajoute un "_"

Pseudo supprimé
Pseudo supprimé 12 juin 2014 à 11:21:29

Donc je fais :

mot_tiret = "-" * nombre_de_lettres_du_mot
print (mot_tiret)

if lettre in mot :
print("Bravo tu as trouvé un lettre")
print lettre in mot_tiret

ça marchera ?

Pseudo supprimé
Pseudo supprimé 12 juin 2014 à 12:49:49

"En python on ne peut pas modifier une chaine à l'arrache du genre mot[5] = 'e', il faut donc crééer une nouvelle chaine : "
C'est faux, si on peut :(

Pour modifier la lettre à l'index 5 par "A" dans le String 'mot' :
mot = mot[0:5] +"A"+ mot[6:len(mot)]

J'avais une fonction dans le temps :hap:
http://pastebin.com/1sC7xi46

linux13-04
linux13-04
Niveau 8
12 juin 2014 à 16:03:00

:-(( :-((

  1. Pour modifier la lettre à l'index 5 par "A" dans le String 'mot' :

mot = mot[0:5] +"A"+ mot[6:len(mot)]

  1. 'avais une fonction dans le temps

Oui voilà, tu as du créer une fonction car ce n'est pas possible de base, là tu réinitialises tout le contenu la viriable tu ne la modifies pas, c'est même précisé en message d'erreur :
"TypeError: 'str' object does not support item assignment"

:-((

a = "abcd"
a[2] = 'r'

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

Pseudo supprimé
Pseudo supprimé 12 juin 2014 à 16:03:51

linux13-04 ?

linux13-04
linux13-04
Niveau 8
12 juin 2014 à 16:49:43

?

linux13-04
linux13-04
Niveau 8
12 juin 2014 à 17:01:00

bien sûr que non ça ne marchera pas

"print lettre in mot_tiret " ça n'a pas de sens ni au niveau de la synthaxe python, ni dans l'idée, mais je vois pas comment t'aider, je ne peux pas apprendre, comprendre et m'exercer à ta place, tu devrai repartir de 0 avec ça :

http://users.polytech.unice.fr/~helen/pythonCIP1/apprendre_python3Swinnen.pdf

J'ai appris avec, maintenant je suis "bon", il est simple à comprendre.

Pseudo supprimé
Pseudo supprimé 12 juin 2014 à 17:32:39

Chez moi ça marche, alors bon si tu le dis.. :hap:

linux13-04
linux13-04
Niveau 8
12 juin 2014 à 17:38:39

Tu as python3 ? :(

File "ff.py", line 8
print lettre in mot_tiret
^
SyntaxError: invalid syntax

Pseudo supprimé
Pseudo supprimé 12 juin 2014 à 18:36:56

oui, j ai réussi a faire apparaitre le bon nombre de '-' par rapport au nombre de lettres mais j arrive tjs pas à remplacer la lettre au bon endroit quand la personne la trouve.

Toonjez
Toonjez
Niveau 10
12 juin 2014 à 20:01:01

Regarde la fonction que je t'ai montré :

def verifMot():
mot = ' '
for lettres in mot_a_trouve:
if lettres in liste_lettres:
mot += lettres
else:
mot += '*'
return mot

La boucle for permet de faire exactement ce que tu cherches.
Elle place les lettres au bon endroit(index), et affiche le bon nombre de caractères.

Pseudo supprimé
Pseudo supprimé 12 juin 2014 à 20:13:04

merci mais je voudrais aussi comprendre et pas copier coller bêtement, le for et le def signifient quoi ?

Toonjez
Toonjez
Niveau 10
12 juin 2014 à 20:21:55

Tu as raison de ne pas vouloir copier bêtement, mais si tu n'as vu ni les boucles for, ni les fonctions (def), c'est normal que tu n'arrives pas cet exercice.
Comme l'a dit Linux plus haut, tu devrais reprendre à zéro avec le tuto de Gerard Swinnen.
Ne brûle pas les étapes en voulant aller trop vite vers des trucs plus 'cool' comme les GUI, sinon tu peux être sur que tu vas couler.
Perso il m'arrive de rester plusieurs semaines sur la même leçon avant de continuer, pour être sûr de bien l'avoir compris.

Tu apprends grâce à quel tuto ?

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment