Partage
  • Partager sur Facebook
  • Partager sur Twitter

Aide programme

2 avril 2022 à 14:36:02

Bonjour

-
Edité par MarionVabre 4 avril 2022 à 15:15:34

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
2 avril 2022 à 17:34:21

Salut,

Difficile à mettre en place avec la structure de ton programme, car même si ton minuteur est un thread, l'instruction input() est bloquante.

La possibilité serait d'utiliser un module du genre pyinput.

  • Partager sur Facebook
  • Partager sur Twitter
2 avril 2022 à 18:51:37

Je ne sais pas si msvcrt.kbhit pourrait aider.
On vérifie à chaque seconde si on a un input et on fait un sleep.
On augmente le compteur de temps après le sleep.
  • Partager sur Facebook
  • Partager sur Twitter

Le Tout est souvent plus grand que la somme de ses parties.

4 avril 2022 à 15:31:15

@MarionVabre Bonjour, on n'efface pas ses messages après avoir reçu de l'aide.

Je recopie le sujet d'origine pour archive et ferme le sujet.

MarionVabre a écrit:

 Bonjour j'ai un projet à réaliser et je travaille sur le jeu du juste prix avec un minuteur de 60 secondes. Je souhaiterais qu'à la fin de ce minuteur le jeu s'arrête cependant le programme s'arrête seulement quand le joueur entre une nouvelle estimation et donc le temps peut être en négatif s'il est entré après les 60 secondes.

#import sys pour l'exportation vers un fichier extérieur
import classechronometre
import random
 
NOM_FICHIER_PRIX = "juste_prix.csv"
TAB = "\t"
minuTest = classechronometre.Minuteur() #crée et initialise minuTest
print ("Initialisation minuteur :", minuTest.valeur(),"seconde")
 
joueur = input("Pseudo joueur = ") #Le joueur entre son pseudo
 
#1.lire le fichier NOM_FICHIER_PRIX dans la liste JustePrix (liste de chaînes)
#------------------------------------------------------------------------------
fichJustePrix = open(NOM_FICHIER_PRIX,'r')
JustePrix = fichJustePrix.readlines()
fichJustePrix.close()
 
#2.récupérer les numéro, nom de lots, prix et description des lots
#------------------------------------------------------------------------------
lstNumero = [] ; lstPrix = [] ; lstLot=[] ; lstDescription=[]
for rangPrix in range (1, len(JustePrix)) : #sauter le rang 0 = libellés
    """extraire les informations du lot courant et les ajouter dans les listes"""
    lstDatas=JustePrix[rangPrix].rstrip().split(";")
    lstNumero.append(int(lstDatas[0]))
    lstPrix.append(int(lstDatas[1]))
    lstLot.append(str(lstDatas[2]))
    lstDescription.append(str(lstDatas[3]))
 
#3.Sélectionner aléatoirement un lot parmis la liste
#------------------------------------------------------------------------------
Numero = lstNumero
 
def selectRandom(Numero):
    return random.choice(Numero)
 
numero_lot = random.choice(Numero)
valeur_lot = lstPrix[numero_lot]
 
#4.Présentation du jeu
#------------------------------------------------------------------------------
print("Bonjour " + str(joueur) + " et bienvenue au jeu du juste prix !")
print("Vous avez 60 secondes pour trouver le prix exact du lot " +str(numero_lot)+ " entre 1 et 50 000 euros ")
print("Le lot pour lequel vous jouez est : " + str(lstLot[numero_lot]))
 
describe = input ("Voulez-vous une description du lot ? (répondre sous le format oui ou non) ")
if describe == str("oui"):
    print(lstDescription[numero_lot])
else:
    print("")
 
ready= input("Êtes-vous prêt(e)? (répondre sous le format oui ou non) ")
 
if ready == str("oui"): #si le joueur est prêt le minuteur va pouvoir débuter
    print("Let's go !!")
    print ("chrono lancé :", minuTest)
    minuTest.declencher() #le minuteur est lancé
else:
    input("Entrez go quand vous êtes prêt(e) = ")
    print("Let's go !")
    print ("chrono lancé :", minuTest)
    minuTest.declencher() #le minuteur est lancé
 
#5.Boucle permettant au joueur de trouver le juste prix
#------------------------------------------------------------------------------
flag = False
while(flag==False): #La boucle continue tant que le joueur ne trouve pas le prix
    estimation = int(input("Votre estimation = "))   
    if estimation > valeur_lot :
        print ("C'est moins")
        print("Temps restant : " + str(format(minuTest.valeur(),"2.2f")) + " s")
        if minuTest.valeur() <= 0:
            minuTest.arreter()
            print("Temps écoulé, c'est perdu")
            estimation = print("le prix exact était : " + str(valeur_lot) + " euros. Tentez votre chance une prochaine fois...")
            break
                       
    elif estimation < valeur_lot :
         print ("C'est plus")
         print ("Temps restant : " + str(format(minuTest.valeur(),"2.2f")) + " s")
         if minuTest.valeur() <= 0 :
             minuTest.arreter()
             print("Temps écoulé, c'est perdu")
             estimation = print("le prix exact était : " + str(valeur_lot) + " euros. Tentez votre chance une prochaine fois...")
             break
                  
    else :
         minuTest.arreter()
         print ("gagné")
         print("Temps restant :", str(format(minuTest.valeur(),"2.2f")) + " s")
         flag=True


  • Partager sur Facebook
  • Partager sur Twitter