Test musique intervalles

Description

Bonjour, ceci est un programme pour réviser la théorie musicale. Je suis ouvert à toute critique constructive alors n'hésitez pas à poster vos idées pour l'améliorer, je suis programmateur amateur alors ça me fera progresser...
ce programme est un questionnaire.
On peut facilement éditer le script pour changer les questions(ici ce sont des questions de solfège).Le programme donne le résultat régulièrement et une note globale (sur 20) à la fin avec une appréciation, ainsi que le nombre de questions restantes ainsi que la correction si on répond mal.
le "patientez S.V.P", c'est juste pour éviter que les utilisateurs du programme évitent de regarder les réponses précédentes pour s'aider.^^la première question est choisie au hazard, mais les suivantent suivent dans une ordro bien précis selon cette première question. enfin le problème c'est que le programme est facile à interrompre (il suffit d'entrer un string ou de faire simplement enter) et on doit tout recommencer.Mais je n'ai pas d'idées pour empêcher ça.

Source / Exemple :


print "intervalles par ORINYM"
compteur=0
score=0
a="Quelle est la composition d'"
b="? Par exemple si la réponse est 6 tons et 3 demi-tons, tapez 7.5 sans rajouter \"ton(s)\" derrière (attention! Pour les décimales, ce n'est pas une virgule su'il faut mettre mais un point!)"
c="Bien, c'est la bonne réponse, vous gagnez 1 point"
d="désolé, ce n'est pas la bonne réponse."
e="patientez S.V.P. ..."
f="La bonne réponse était"
g="merci d'avoir utilisé ce programme."
h="Vous êtes nul(le)! XD"
i="Vous êtes mauvais(e)! :s"
j="Votre niveau est passable. o_o"
k="vous êtes plutôt bon(ne). :) Mais il y a encore des progrès à faire!"
l="très bien! encore un petit effort et ce sera la perfection! =)"
m="exellent! Vous n'avez plus vraiment besoin de vous exercer sur ce programme! :D"

import random

numéroquestion=random.randint(1,21)
print numéroquestion
while (compteur<20):

    compteur=compteur+1
    print "question",compteur

    if (numéroquestion==1):
        print a,"un unisson juste",b
        réponse=input()

        if (réponse==0):
            print c
            score=score+1

        else:
            print d
            print f,"0"

    elif (numéroquestion==2):
        print a,"un unisson augmenté",b
        réponse=input()

        if (réponse==0.5):
            print c
            score=score+1

        else:
            print d
            print f,"0.5"

    elif (numéroquestion==3):
        print a,"une seconde mineure",b
        réponse=input()

        if (réponse==0.5):
            print c
            score=score+1

        else:
            print d
            print f,"0.5"

    elif (numéroquestion==4):
        print a,"une seconde majeure",b
        réponse=input()

        if (réponse==1):
            print c
            score=score+1

        else:
            print d
            print f,"1"

    elif (numéroquestion==5):
        print a,"une seconde augmentée",b
        réponse=input()

        if (réponse==1.5):
            print c
            score=score+1

        else:
            print d
            print f,"1.5"

    elif (numéroquestion==6):
        print a,"une tierce mineure",b
        réponse=input()

        if (réponse==1.5):
            print c
            score=score+1

        else:
            print d
            print f,"1.5"

    elif (numéroquestion==7):
        print a,"une tierce majeure",b
        réponse=input()

        if (réponse==2):
            print c
            score=score+1

        else:
            print d
            print f,"2"

    elif (numéroquestion==8):
        print a,"une quarte diminuée",b
        réponse=input()

        if (réponse==2):
            print c
            score=score+1

        else:
            print d
            print f,"2"

    elif (numéroquestion==9):
        print a,"une quarte juste",b
        réponse=input()

        if (réponse==2.5):
            print c
            score=score+1

        else:
            print d
            print f,"2.5"

    elif (numéroquestion==10):
        print a,"une quarte augmentée",b
        réponse=input()

        if (réponse==3):
            print c
            score=score+1

        else:
            print d
            print f,"3"

    elif (numéroquestion==11):
        print a,"une quinte diminuée",b
        réponse=input()

        if (réponse==3):
            print c
            score=score+1

        else:
            print d
            print f,"3"

    elif (numéroquestion==12):
        print a,"une quinte juste",b
        réponse=input()

        if (réponse==3.5):
            print c
            score=score+1

        else:
            print d
            print f,"3.5"

    elif (numéroquestion==13):
        print a,"une quinte augmentée",b
        réponse=input()

        if (réponse==4):
            print c
            score=score+1

        else:
            print d
            print f,"4"

    elif (numéroquestion==14):
        print a,"une sixte mineure",b
        réponse=input()

        if (réponse==4):
            print c
            score=score+1

        else:
            print d
            print f,"4"

    elif (numéroquestion==15):
        print a,"une sixte majeure",b
        réponse=input()

        if (réponse==4.5):
            print c
            score=score+1

        else:
            print d
            print f,"4.5"

    elif (numéroquestion==16):
        print a,"une septième diminuée",b
        réponse=input()

        if (réponse==4.5):
            print c
            score=score+1

        else:
            print d
            print f,"4.5"

    elif (numéroquestion==17):
        print a,"une septième mineure",b
        réponse=input()

        if (réponse==5):
            print c
            score=score+1

        else:
            print d
            print f,"5"

    elif (numéroquestion==18):
        print a,"une septième majeure",b
        réponse=input()

        if (réponse==5.5):
            print c
            score=score+1

        else:
            print d
            print f,"5.5"

    elif (numéroquestion==19):
        print a,"une octave diminuée",b
        réponse=input()

        if (réponse==5.5):
            print c
            score=score+1

        else:
            print d
            print f,"5.5"

    elif (numéroquestion==20):
        print a,"une octave juste",b
        réponse=input()

        if (réponse==6):
            print c
            score=score+1

        else:
            print d
            print f,"6"

    elif (numéroquestion==21):
        print a,"une octave augmentée",b
        réponse=input()

        if (réponse==6.5):
            print c
            score=score+1

        else:
            print d
            print f,"6.5"

    n=0
    while (n<100):
        print e
        n=n+1

    o=20-compteur

    if (o!=0):

        print "il vous reste",o,"question(s)"

        print "vous avez",score,"points sur",compteur

        numéroquestion =numéroquestion+5

        if(numéroquestion>21):
            numéroquestion=numéroquestion-21

    if (o==0):

        print "vous avez terminé"
        print "vous avez",score,"points sur",compteur

        if (score<6):
            print h
        elif (score>5) and (score<10):
            print i
        elif (score>9) and (score<13):
            print j
        elif (score>12) and (score<16):
            print k
        elif (score>15) and (score<19):
            print l
        elif (score>18):
            print m
print g

Conclusion :


Programme long à écrire même s'il est simple , il n'utilise que des fonctions logiques (si, et, boucles). Les questions peuvent être adaptée en fonction d'un autres sujet.

Codes Sources

A voir également

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.