Probleme de boucle

Messages postés
6
Date d'inscription
samedi 30 avril 2016
Dernière intervention
11 mai 2016
- - Dernière réponse : Lasyvegasy
Messages postés
6
Date d'inscription
samedi 30 avril 2016
Dernière intervention
11 mai 2016
- 4 mai 2016 à 19:52
Bonjour, j'ai créé un générateur de calcul mental avec différents modes:classique,arcade,course et time attack(pas encore fini).Le but du mode arcade est d'enchainé le plus de calculs sans faire d'erreurs,si l'utilisateurs en fait le jeu s'arrête. Je voudrais donc savoir si c'était possible de mettre une boucle for i in range (des qu'il fait un erreur) ou si c'était preferable de mettre un grand nombre a la place dans la boucle. De plus je voudrais savoir comment faire pour que le générateur, en mode course, reste sur le meme calcul jusqu'a ce que l'utilisateur trouve la bonne réponse avant de passer au calcul suivant. Et enfin, je souhaiterais savoir comment faire pour mettre des difficultés,c-a-d que l'utilisateur choisi le niveau de difficulté:facile,normale,difficile; avant le choix mode pour les calculs se fassent en fonction de la difficulté choisi. Vu que c'est un projet bac, si vous avez des idées intéressantes, n'hésitez pas à les proposer. Merci pour votre aide, elle me sera d'une grande utilité.

# Imports
from random import randint
import time
from math import*
 
# Fonctions
def menu():
    print ("Tapez:")
    print ("1 pour le mode classique")
    print ("2 pour le mode arcade")
    print ("3 pour le mode course")
    print ("O pour quitter")
 
def classique():
    score=0
    for p in range(20):
        a, b, signe = randint(1,20), randint(1,10), randint(1,3)
        if signe==2 and a<b: # En cas de soustraction : a doit être > b
            a,b=b,a
 
        operation='%d %s %d' % (a , '_+-*'[signe] , b)
 
        resultat=eval(operation)
 
        question='Operation %d : %s = ?  ' % (p+1,operation)
        resultat2=int(input(question))
 
        score+=(resultat2==resultat)
    print (score,'/20')
    return
         
def arcade():
    score=0
    p=0
    while p < 50:
        a, b, signe = randint(1,20), randint(1,10), randint(1,3)
        if signe==2 and a<b: # En cas de soustraction : a doit être > b
            a,b=b,a
        operation='%d %s %d' % (a , '_+-*'[signe] , b)
 
        resultat=eval(operation)
 
        question='Operation %d : %s = ?  ' % (p+1,operation)
        resultat2=int(input(question))
         
        if resultat2 == resultat:
            score=score+1
            p=p+1
        else:
            score=score
            p=p+1
            print ("Votre score est de",score)
            break
 
def course():
    score=0
    debut=time.time()
    for p in range(20):
        a, b, signe = randint(1,20), randint(1,10), randint(1,3)
        if signe==2 and a<b: # En cas de soustraction : a doit être > b
            a,b=b,a
 
        operation='%d %s %d' % (a , '_+-*'[signe] , b)
 
        resultat=eval(operation)
 
        question='Operation %d : %s = ?  ' % (p+1,operation)
        resultat2=int(input(question))
         
 
        score+=(resultat2==resultat)
 
    fin=time.time()
    temps=ceil(fin-debut)
    print ('Vous avez mis',temps,'secondes pour faire les 20 calculs')
    return
         
 
menu()
choix=int(input('Sasir votre choix : '))
if choix==1:
    classique()
if choix==2:
    arcade()
if choix==3:
    course()
Afficher la suite 

Votre réponse

1 réponse

Messages postés
90
Date d'inscription
mardi 30 juillet 2013
Dernière intervention
22 novembre 2018
0
Merci
Bonjour,
J'allais vous répondre et je me suis rendu compte que vous avez eu votre réponse sur :
https://openclassrooms.com/forum/sujet/besoin-d-aide-et-d-information

;)
Bon courage pour ton projet bac ISN !
Lasyvegasy
Messages postés
6
Date d'inscription
samedi 30 avril 2016
Dernière intervention
11 mai 2016
-
Merci :)
Commenter la réponse de hbouia

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.