Ayress
-
Modifié le 5 déc. 2020 à 18:39
Whismeril
Messages postés19026Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention20 avril 2024
-
13 déc. 2020 à 17:43
Bonjour à tous,
Je suis actuellement scolarisé en Terminale avec l'option NSI.
Depuis quelques temps, je me suis lancé dans un programme assez complexe (pour moi).
Reproduire le jeu "10FastFinger" en python.
Cependant, je rencontre quelques difficutés :
Voici le début de mon code suivi de quelques idées pour le rétrécir :
"""But de ce programme : Reproduire le jeu 10FastFinger"""
"""Partie du jeu :"""
import time
print("Les mots sont : ainsi, fois, tout, cent, amour, reprendre, devenir, jusque, rue, monsieur, mari, ville, falloir, maison, quel, peu, tenir, air, bien, beau ")
t=time.time()
while 1:
if time.time()-t < 30:
score = 0
a=input("Mot(ainsi) : ")
if a == "ainsi":
score+=1
else :
score+=0
b=input("Mot(fois) : ")
if b == "fois":
score+=1
else :
score+=0
c=input("Mot(tout) : ")
if c == "tout":
score+=1
else :
score+=0
d=input("Mot(cent) : ")
if d == "cent":
score+=1
else :
score+=0
e=input("Mot(amour) : ")
if e == "amour":
score+=1
else :
score+=0
f=input("Mot(reprendre) : ")
if f == "reprendre":
score+=1
else :
score+=0
g=input("Mot(devenir) : ")
if g == "devenir":
score+=1
else :
score+=0
h=input("Mot(jusque) : ")
if h == "jusque":
score+=1
else :
score+=0
i=input("Mot(rue) : ")
if i == "rue":
score+=1
else :
score+=0
j=input("Mot(monsieur) : ")
if j == "monsieur":
score+=1
else :
score+=0
k=input("Mot(mari) : ")
if k == "mari":
score+=1
else :
score+=0
l=input("Mot(ville) : ")
if l == "ville":
score+=1
else :
score+=0
m=input("Mot(falloir) : ")
if m == "falloir":
score+=1
else :
score+=0
n=input("Mot(maison) : ")
if n == "maison":
score+=1
else :
score+=0
o=input("Mot(quel) : ")
if o == "quel":
score+=1
else :
score+=0
p=input("Mot(peut) : ")
if p == "peut":
score+=1
else :
score+=0
q=input("Mot(tenir) : ")
if q == "tenir":
score+=1
else :
score+=0
r=input("Mot(air) : ")
if r == "air":
score+=1
else :
score+=0
s=input("Mot(bien) : ")
if s == "bien":
score+=1
else :
score+=0
t=input("Mot(beau) : ")
if t == "beau":
score+=1
else :
score+=0
u=input("Mot(connaître) : ")
if u == "connaître":
score+=1
else :
score+=0
v=input("Mot(mettre) : ")
if v == "mettre":
score+=1
else :
score+=0
w=input("Mot(puis) : ")
if w == "puis":
score+=1
else :
score+=0
x=input("Mot(ciel) : ")
if x == "ciel":
score+=1
else :
score+=0
y=input("Mot(sans) : ")
if y == "sans":
score+=1
else :
score+=0
z=input("Mot(votre) : ")
if z == "votre":
score+=1
else :
score+=0
aa=input("Mot(premier) : ")
if aa == "premier":
score+=1
else :
score+=0
ab=input("Mot(avoir) : ")
if ab == "avoir":
score+=1
else :
score+=0
ac=input("Mot(avec) : ")
if ac == "avec":
score+=1
else :
score+=0
ad=input("Mot(chambre) : ")
if ad == "chambre":
score+=1
else :
score+=0
ae=input("Mot(ami) : ")
if ae == "ami":
score+=1
else :
score+=0
af=input("Mot(ni) : ")
if af == "ni":
score+=1
else :
score+=0
ag=input("Mot(noir) : ")
if ag == "noir":
score+=1
else :
score+=0
ah=input("Mot(chaque) : ")
if ah == "chaque":
score+=1
else :
score+=0
ai=input("Mot(aimer) : ")
if ai == "aimer":
score+=1
else :
score+=0
aj=input("Mot(parler) : ")
if aj == "parler":
score+=1
else :
score+=0
else :
print("Le temps est écoulé")
print("Bien joué, vous avez fini, votre score est de :",score,"en 30 secondes")
moyenne = 16
score_min=score*2
print("Vous avez tapé",score_min,"de mots en 1 minute")
if score > moyenne:
print("Bravo, vous êtes au dessus de la moyenne")
else :
print("Votre score est en dessous de la moyenne, retentez votre chance")
--------------------------------------------------------------------------------------------------------------------------------------
Je créé donc un chronomètre au début de mon programme et par la suite dans une boucle, j'utilise le moyen "input" pour avoir la réponse de l'utilisateur.
Problème : unsupported operand type(s) for -: 'float' and 'str'
Quelques idées :
import random
MaListe=["chaque","jeu","jouer","mettre","puis","ciel","amour","cent","tout","..."]
random.choice(MaListe)
#J'essaie de faire aléatoirement prendre un mot dans une liste
Je pense également qu'il est préférable de faire une boucle ou je regroupe tous les inputs.
Whismeril
Messages postés19026Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention20 avril 2024656 6 déc. 2020 à 19:23
D'après ce que vous m'avez dit, t c'est l'heure a laquelle mon jeu commence.
oui mais pourquoi?
time.time() - t donne donc l'heure actuelle.
ben non, tu vois bien sur ma capture (et si tu essayes mon bout de code de ton coté) que le print ne donne pas un nombre à rallonge qui pourrait ressembler au nombre de seconde presque 51 ans....
C'est parce que t=time.time()
time.time()-t = 0 lorsque que j'exécute mon programme mais augmente à chaque secondes
C'est avec cette ligne que mon chrono commence.
Le programme demande de saisir une chaîne de caractère rep, on répond "ainsi"
Le texte "ainsi" est converti en une chaîne de caractère pour remplir la variable rep
La valeur de rep est la même que "ainsi"
La variable score augmente de 1
Afficher "durée de jeu" puis time.time() -t soit le temps qui s'est écoulé depuis que j'ai exécuté le programme
Le programme demande de saisir une chaîne de caractère rep, on répond "fois"
Le texte "fois" est converti en une chaîne de caractère pour remplir la variable rep
La valeur de rep est la même que "fois"
La variable score augmente de 1 soit 2
Afficher "durée de jeu" puis time.time() -t soit le temps qui s'est écoulé depuis que j'ai exécuté le programme
Le programme demande de saisir une chaîne de caractère rep, on répond "tout"
Le texte "tout" est converti en une chaîne de caractère pour remplir la variable rep
La valeur de rep est la même que "tout"
La variable score augmente de 1 soit 3
Afficher "durée de jeu" puis time.time() -t soit le temps qui s'est écoulé depuis que j'ai exécuté le programme
Mais ce que je ne comprends pas c'est pourquoi le programme ne s'arrête pas après 30 secondes.
Peut-être parce que si je prend plus de 30 secondes à taper le mot le programme s'arrête et qu'ensuite ça revient = 0
Après avoir testé, si j'enlève le else ainsi que le print dans la boucle infini, après avoir tapé mon dernier mot, le score n'est pas affiché, rien n'est affiché
6 déc. 2020 à 19:45
time.time()-t = 0 lorsque que j'exécute mon programme mais augmente à chaque secondes
C'est avec cette ligne que mon chrono commence.