Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Petit problème avec la programmation d'un jeu "question/réponse"


Messages recommandés

Invité leblogueur
Posté(e)

Bonjour,
j'ai un petit problème au niveaux d'un programme question/réponse et je ne trouve pas la solution!! quand je l'execute la fenètre s'ouvre mais quand je répond a la première question la fenêtre ce ferment

#!/usr/bin/python
# -*- coding: <encoding name> -*-
l = [["""començons ce petit jeu. 1. veut tu te lancer dans cet aventure 2. ou veut tu arreter""",1, 2, ],
     ["""yes allons y! ok maintenant tu doit trouver un trésortu  arrive devant le chateu tu veut 
    1. ouvrir la porte
    2. non tu abandonne""", 3, 4],
     ["au revoir"],
     ["""cool, voila tu est dans le chateu mais des brigan t'attaque 
     1. tu prend un couteau quie st dans un coin
     2. tu prend l' épée sur une viellle armure a l'autre bout de la pièce
     3. tu prend la fuite""", 5, 6, 7],
     ["au revoir"],
     ["""bien joué tu à réussi a passé à la pièce suivante
     1. tu continu dans le salon
     2. tu repart cette endroit te donne la chaire de poule brrr""", 8, 9],
     ["""oh non tu t'est fait capturée parce tu n'a pas eu le temps d'aller chercher l'épée  mais tu n'as pas perdu
     1. tu reste calme et tu fait connaissance avec ces barbare
     2. tu par en sciant tes liens""", 10, 11],
      ["""te voila dans le salon cette pièce est très rustique plusieurs option s'offrent a toi
     1. tu continu tout droit et tu vas dans la salle de baine
     2. tu prend la porte dérobée que tu a observer plus tot""",12, 13],
     ["au revoir recommence"],
     ["""te voila avec ces barbare qui s'avèrebnt être de pauvre paysan alerter par l'orage qui sont venue se réfugier dans ce chateau pour la nuit
     1.tu les suit et rentre dans leur village
     2.tu les laisse et il te donne une épée""",14, 15],
    ["""tu t'enfuis et tu tombe dans un piège dommage reccomence"""],
    ["""mince te voici coincé dommage recommence"""],
    ["""te voila dans une petite pièce sombre et un couloir ce présente devant toi 
     1. tu continu tout droit pour contiuner dans ce sombre couloir
     2. tu prend la porte dérobée que tu a pris plus tot""",16, 17],
     ["""aurevoir passe une bonne vie dans ce village"""],
     ["""te voila dans le salon cette pièce est très rustique plusieurs option s'offrent a toi
     1. tu continue tout droit et tu vas dans la salle de baine
     2. tu prend la porte dérobée que tu a observer plus tot""",12, 13],
     ["""tu rencontre un hermite que fait tu?
     1. tu continu tout droit sans faire attention a lui
     2. tu t'arrète""",18, 19],
     ["""te voila devant une porte que fait tu?
     1. tu l'ouvre et rentre dans cet pièce
     2. tu rebrousse chemin""",20, 21],
     ["""dommage l'hermite était un piège il t'empoisonne reccomence"""],
     ["""tu découvre le trésor tu a gagné"""],
     ["""dommage le trésors t'attendait derrière cette porte recommence"""]],
indice = 0
q = True
 
while q:
    q = input(l[indice][0])
    if q == "1":
        indice = l[indice][1]
    elif q == "2":
        indice = l[indice][2]
    elif q == "3":
        indice = l[indice][3]

 

  • Tonton a modifié le titre en Petit problème avec la programmation d'un jeu "question/réponse"

Posté(e) (modifié)

Bordel, il faut vraiment que je me remette au Python moi, je suis plus que rouillé :outch:

Je ne sais pas quel éditeur de code tu utilises, mais sous Visual Studio Code, au moment de l’exécution

TypeError: tuple indices must be integers or slices, not list

En fait il y a une virgule après le dernier crochet de ta liste qui fout le bordel, comme si il y avait un élément qui suivait alors que non, du coup au lieu de récupérer juste l'indice dans ta variable indice, tu récupères tout ce qu'il y a entre tes crochets, texte, indices...

Pour détecter tes erreurs, n'hésite pas à user et abuser de la fonction print pour voir ce que contiennent tes variables, un print(indice) aurait pu te mettre sur la piste ;)
Et si ton jeu est destiné à être diffusé, ce que je suppose, pense à bien te relire, si un certain modérateur tombe sur tes textes, il risque de tomber de sa chaise et de louper l'heure du midnight :D

Modifié par nthor
Posté(e) (modifié)

Bonjour,

En réponse pour votre jeu je vous propose ceci:

#!/usr/bin/python
# -*- coding: utf8 -*-
l = [["""començons ce petit jeu. 1. veut tu te lancer dans cet aventure 2. ou veux tu arreter """,1, 2 ],
     ["""yes allons y! ok maintenant tu doit trouver un trésortu  arrive devant le chateu tu veut 
    1. ouvrir la porte
    2. non tu abandonne """, 3, 4 ],
     ["au revoir"],
     ["""cool, voila tu es dans le chateau mais des brigands t'attaquent 
     1. tu prends un couteau qui est dans un coin
     2. tu prends l'épée sur une viellle armure a l'autre bout de la pièce
     3. tu prends la fuite """, 5, 6, 7 ],
     ["au revoir"],
     ["""bien joué tu as réussi a passé à la pièce suivante
     1. tu continu dans le salon
     2. tu repart cette endroit te donne la chaire de poule brrr """, 8, 9 ],
     ["""oh non tu t'est fait capturée parce tu n'a pas eu le temps d'aller chercher l'épée  mais tu n'as pas perdu
     1. tu reste calme et tu fait connaissance avec ces barbare
     2. tu par en sciant tes liens """, 10, 11 ],
      ["""te voila dans le salon cette pièce est très rustique plusieurs option s'offrent a toi
     1. tu continu tout droit et tu vas dans la salle de baine
     2. tu prend la porte dérobée que tu a observer plus tot """,12, 13 ],
     ["au revoir recommence"],
     ["""te voila avec ces barbare qui s'avèrebnt être de pauvre paysan alerter par l'orage qui sont venue se réfugier dans ce chateau pour la nuit
     1.tu les suit et rentre dans leur village
     2.tu les laisse et il te donne une épée """,14, 15 ],
    ["""tu t'enfuis et tu tombe dans un piège dommage reccomence"""],
    ["""mince te voici coincé dommage recommence"""],
    ["""te voila dans une petite pièce sombre et un couloir ce présente devant toi 
     1. tu continu tout droit pour contiuner dans ce sombre couloir
     2. tu prend la porte dérobée que tu a pris plus tot """, 16, 17 ],
     ["""aurevoir passe une bonne vie dans ce village"""],
     ["""te voila dans le salon cette pièce est très rustique plusieurs option s'offrent a toi
     1. tu continue tout droit et tu vas dans la salle de baine
     2. tu prend la porte dérobée que tu a observer plus tot """,12, 13 ],
     ["""tu rencontre un hermite que fait tu?
     1. tu continu tout droit sans faire attention a lui
     2. tu t'arrète""", 18, 19 ],
     ["""te voila devant une porte que fait tu?
     1. tu l'ouvre et rentre dans cet pièce
     2. tu rebrousse chemin""", 20, 21 ],
     ["""dommage l'hermite était un piège il t'empoisonne recommence"""],
     ["""tu découvre le trésor tu a gagné"""],
     ["""dommage le trésors t'attendait derrière cette porte recommence"""]]
indice = 0
q = 1

while True:
  saved_indice = indice
  q = input(l[indice][0])
  if len(l[indice])-1 < q:
    q = saved_indice
    print("Reponse en dehors des choix, retente !\n")
  else:
    indice = l[indice][q]
  if len(l[indice]) < 2:
    print(l[indice][0])
    break

Amusez-vous bien ! :D

Voilà ... :)

Modifié par Kana-chan
Posté(e) (modifié)

Je plussoie l'utilisation du "len", je pensais en parler si il repointait son nez ici. 

Et histoire de chipoter, j'aurais plutôt mis "while True" Pour la boucle infinie que je trouve plus élégant et on ne sait jamais si il a beaucoup de choix de réponse :D

Modifié par nthor
  • Modérateurs
Posté(e)

Bonjour à tou[te]s,

Au cas où leblogueur repasserait par ici, je lui proposerai une relecture de ses questions/réponses qui puisse lui permettre de briller en société... :wink:

  • 8 mois après...
Posté(e)

Salut,

Ta mis

elif

à la place de  else

😁

Posté(e)

Si tu parles du code présent dans le premier post, on est en Python, donc "elif" en cas de condition supplémentaire et "else" uniquement si pas de condition donc non, pas de problème à ce niveau là.

Les deux "elif" du code fonctionne très bien, le "else + len" du code de Kana est simplement plus optimisé et adaptable aux différents nombres des réponses.

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...