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.
Le Tout est souvent plus grand que la somme de ses parties.
@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
Le Tout est souvent plus grand que la somme de ses parties.