Partage
  • Partager sur Facebook
  • Partager sur Twitter

"motus" en python

7 janvier 2018 à 20:43:08

bonjour, comme le titre l'indique, j'essaie de programmer le jeu du motus en python, un peu a ma sauce mais en gardant les bases.

voici le programme:

import time
import os


def motaffiche(caractere , longueur):
  return caractere*longueur

essais=5
chances=5
print("Bienvenue dans ce jeu du motus, vous avez",chances, "essais. Bonne chance.")
time.sleep(2.0)
print("Demandez à quelqun de rentrer un mot à deviner pour vous.")
time.sleep(3.0)
motadeviner=input("entrez le mot a deviner:")
MOT=motadeviner
motadeviner=list(motadeviner.lower())
time.sleep(2.0)
_=os.system("CLS")      # Windows
_=os.system("clear")    # Linux et OSX
print("le joueur peut revenir")
time.sleep(2.0)
print("la longueur du mot à deviner est de" , len(motadeviner), "lettres.")
affichage = list(motaffiche('-',len(motadeviner)))
print(affichage)
time.sleep(2.0)


print("entrez un mot, il vous reste ", chances, "essais")
essaimot=input()
essaimotlist=list(essaimot.lower())
  
plusdechances=(chances==0)
mottrouve=(essaimot==MOT)

while plusdechances or mottrouve:
  if len(essaimotlist) != len(motadeviner):
    print("Vous devez entrer un mot de" , len(motadeviner), "lettres! Réessayez!")
    
    
  for iCol in range(len(motadeviner)):
    if essaimotlist[iCol]==motadeviner[iCol]:
      affichage[iCol]=essaimotlist[iCol]
   
  print(affichage)
  
  print("entrez un mot, il vous reste ", chances, "essais")
  essaimot=input()
  essaimotlist=list(essaimot.lower())  
  chances=chances-1
  
if plusdechances:
  print("Vous avez perdu, le mot etait: ",MOT )
  
if mottrouve:
  print("Bravo vous avez trouvé le mot avec", essais-chances , "essais !")

évidemment si je poste ici c'est que j'ai besoin d'aide , donc mon problème c'est que arrivé a la boucle for le programme s’arrête sans erreur.

j'ai essayé avec un boucle for sauf qu’évidemment le programme ne s’arrête pas lorsque le mot a été trouvé..

j'ai modifie ce programme une centaine de fois donc si il y a une variable inutilisée ou inutile c'est normal.. 

je serais reconnaissant a toute personne m'aidant.

crdlmnt

  • Partager sur Facebook
  • Partager sur Twitter
11 janvier 2018 à 12:55:06

Bonjour,

C'est un problème de logique: tu demandes a ce que l'utilisateur n'est plus de chance (impossible a ce stade) ou qu'il trouve le mot du premier coup pour rentrer dans la boucle alors qu'il faudrait qu'il reste au moins une chance et que le mot donne ne soit pas le bon.

  • Partager sur Facebook
  • Partager sur Twitter
7 novembre 2023 à 10:59:49

Bonjour moi aussi j'aurais besoin d'aide

  • Partager sur Facebook
  • Partager sur Twitter
7 novembre 2023 à 11:14:26

AlexandreBailleul1 a écrit:

Bonjour moi aussi j'aurais besoin d'aide


bah créé un sujet qui expose ton souci .......
  • Partager sur Facebook
  • Partager sur Twitter
7 novembre 2023 à 11:32:59

SachaPaillie a écrit:

je serais reconnaissant a toute personne m'aidant.

Normalement, c'est dans le bloc while qu'on n'entre pas car les variables plusdechances, mottrouve sont toutes deux à faux. Et normalement, le premier message du bloc "vous devez entrez un mot de..." ne devrait pas s'afficher (preuve que...)

2ème soucis, les variables qui contrôlent la sortie de la boucle while ne sont pas mises à jour à l'intérieur de la boucle: soit on n'entre pas soit on n'en sort pas.

  • Partager sur Facebook
  • Partager sur Twitter
7 novembre 2023 à 11:54:42

@mps le sujet initial date de 2018 :p (on a eu un petit déterrage)
  • Partager sur Facebook
  • Partager sur Twitter
7 novembre 2023 à 13:11:56

umfred a écrit:

@mps le sujet initial date de 2018 :p (on a eu un petit déterrage)


:waw:
  • Partager sur Facebook
  • Partager sur Twitter
7 novembre 2023 à 13:57:39

@AlexandreBailleul1 Bonjour, merci de ne pas déterrer d'ancien sujet, créer le votre en nous indiquant quelle est votre problématique et le code que vous avez écrit.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter