Programme Python multi-fonction constitué d’un jeu, de calculs en rapport avec des fonctions et d’un convertisseur informatique

Projets

Script qui permet de faire des conversions et des calculs en rapport avec une fonction. Il contient aussi un quiz.

Lors de l’execution du script, vous serez demandé d’introduire un identifiant et un mot de pass. Si celui-ci est correct, Le message « Bienvenue – Accès autorisé » s’affichera lettre par lettre. Sinon, un script tournera à l’infini spammera « alert intrusion ». Ce system est défini par la fonction « login ». Voici les données qu’il faut rentrer pour accéder au programme :


USERNAME : LJ
PASSWORD : NADIM

#Voici le systeme de login
def login():
    username="LJ"
    password="NADIM"
    print("Enter username : ")
    answer1=input()
    print("Enter password : ")
    answer2=input()
    #Si les données rentré sont correctes, le systeme execute le menu principal
    if answer1==username and answer2==password:
        bonjour="""Bienvenue - Accès autorisé
 
"""
        for char in bonjour:
            sys.stdout.write(char)
            time.sleep(0.2)
        menu1()
    #Si les données rentré sont fausses, le systeme spam un msg  
    else:
        i = 0
        while i < i + 1:
            print("alert intrusion")
 
            i = i + 1

Le script est constitué de 10 fonctions :

- Le login (Défini par : login ) Retour ligne manuel
- Le menu principal (Défini par : menu1Retour ligne manuel
- Le menu des fonctions (Défini par : menu2Retour ligne manuel
- La fonction qui demande deux points sur une droite (Défini par : demande_de_pointsRetour ligne manuel
- L’option 1 qui donne le coefficient directeur et là décris (Défini par : option_1Retour ligne manuel
- L’option 2 qui donne le milieu I (Défini par : option_2Retour ligne manuel
- L’option 3 qui donne la distance des deux points (Défini par : option_3Retour ligne manuel
- L’option 4 qui donne l’équation de la droite (Défini par : option_4Retour ligne manuel
- Le menu des conversions informatiques (Défini par : menu_conversions_informatiqueRetour ligne manuel
- Le quiz (Défini par : jeu)

Explication de chaque fonctions :

LE MENU PRINCIPAL : Il propose l’option de continuer vers le menu des fonctions, vers le menu des conversions informatique et vers le jeu ou de quitter le programme.

#Le menu principal est composé de 3 options de continuation et une option qui "éteint" le scripte
def menu1():
    print("""
 
{MAIN MENU}""")
    choice = input("""
A: Les fonctions
B: Les conversions informatiques
C: Jeu
D: Quitter
 
                     Veuillez entrer votre choix: """)
    if choice == "A" or choice =="a":
        demande_de_points()
    elif choice == "B" or choice =="b":
        menu_conversions_informatique()
    elif choice == "C" or choice =="c":
        jeu()
    elif choice=="D" or choice=="d":
        exit()
    else:
        print("VOUS NE DEVEZ QUE CHOISIR ENTRE A B C D!")
        print("Veuillez réessayer")
        menu1()

LA DEMANDE DE POINTS : Si vous choisissez de continuer vers le menu des fonctions, le nom de deux points et leurs coordonnées vous serons demander. Ces donnés seront utilisés pour l’option 1, 2, 3 et 4 du menu des fonctions.

#Cette fonction est executé avant que le menu des fonctions le soit. Il demande les coordonées de deux points sur une droite
def demande_de_points():
    global X1, X2, Y1, Y2, premier_point, deuxieme_point
    premier_point=input('Quel est le nom de ton premier point?')
    deuxieme_point=input('Quel est le nom de ton deuxieme point?')
    X1=int(input('Abscisse de '+ premier_point  +'= '))
    Y1=int(input('Ordonnée de '+ premier_point +'= '))
    X2=int(input('Abscisse de '+ deuxieme_point  +'= '))
    Y2=int(input('Ordonnée de '+ deuxieme_point +'= '))
    menu2()

LE MENU DES FONCTIONS : Il propose le coef directeur et la direction de la droite, de donner le milieu I des deux points, de donner leur distance et de calculer l’équation de la droite.

#Voici le menu des fonctions qui effectue des calculs en rapport avec la fonction affine
def menu2():
    print("""
 
{MENU DES FONCTIONS}""")
    choice = input("""
A: Coef directeur et direction
B: Milieu I
C: Distance deux points
D: Equation de droite
E: Retour
 
Veuillez entrer votre choix: """)
 
    if choice == "A" or choice =="a":
        option_1()
    elif choice == "B" or choice =="b":
        option_2()
    elif choice == "C" or choice =="c":
        option_3()
    elif choice=="D" or choice=="d":
        option_4()
    elif choice=="E" or choice=="e":
        menu1()
    else:
        print("VOUS NE DEVEZ QUE CHOISIR ENTRE A B C D E!")
        print("Veuillez réessayer")
        menu2()

L’OPTION 1 : Elle calcule le coefficient directeur avec les variables globals X1, X2, Y1, Y2 et là décris, meme si elle est parallel à l’axe des abscisses (Si X1=X2).

#1ere option du menu des fonctions. Il calcul le coefficient directeur et nous décris son sens
def option_1():
    global X1, X2, Y1, Y2    
    if X1==X2:
        print("La courbe est parallèle à l'axe des ordonnées")
        time.sleep(3)
    elif Y1==Y2:
        print("La courbe est parallèle à l'axe des abscisses")
        time.sleep(3)
    else:
        coef_1=(Y2-Y1)
        coef_2=(X2-X1)
        coefficient_directeur=Fraction(coef_1,coef_2)
        print('Le coefficient directeur est', coefficient_directeur)
   
        if coefficient_directeur<0:
            print('La courbe est strictement décroissante')
            time.sleep(3)
       
        elif coefficient_directeur>0:
            print('La courbe est strictement croissante')
            time.sleep(3)
   
    menu2()

L’OPTION 2 : Elle calcule les coordonnées de I ((X1+X2)/2 ;(Y1+Y2)/2)

#2ieme option du menu des fonctions. Il calcul le milieu I des deux points sur la droite
def option_2():
    global X1, X2, Y1, Y2, premier_point, deuxieme_point
    milieu_coor1=(X1+X2)/2
    milieu_coor2=(Y1+Y2)/2
    print("""
 
""""Les coordonées de I sont ","(",milieu_coor1,";",milieu_coor2,")")
    time.sleep(3)
    menu2()

L’OPTION 3 : Elle calcule la distance des points avec « sqrt » importé de « math ». Soit sqrt((X2-X1)**2+(Y2-Y1)**2))

#3ieme option du menu des fonctions. Il calcul la distance de deux points
def option_3():
    global X1, X2, Y1, Y2, premier_point, deuxieme_point
    from math import sqrt
    distance_de_deux_points=print(str(premier_point),str(deuxieme_point),"=",sqrt((X2-X1)**2+(Y2-Y1)**2))
    time.sleep(3)
    menu2()

L’OPTION 4 : Elle calcule l’équation de la fonction grace aux coordonnées demandés.

#4ieme option du menu des fonctions. Il calcul l'équation de droite
def option_4():
    global X1, X2, Y1, Y2, premier_point, deuxieme_point
    if X1==X2 or (Y2-Y1)/(X2-X1)==0:
        print("f(x)=",Y1 )
        time.sleep(3)
        menu2()
    else:
        m=int(((Y2-Y1)/(X2-X1)))
        p=(m*X1-Y1)*(-1)
        print("f(x)=",m,'x+',p)
        time.sleep(3)
        menu2()

LE MENU DES CONVERSIONS INFORMATIQUE : Il peut passer les nombres décimaux vers l’octal, le décimal, le binaire et pass le binaire vers le décimal sur 1 octet. Nous avons décider de ne faire q’une seul fonction pour cette catégorie.

#Voici le menu des conversions_informatiques qui effectue des calculs en rapport avec: Le decimal, le binaire, l'hexadecimal, l'octal
def menu_conversions_informatique():
    print("""
 
{Les conversions_informatiques}""")
    choice = input("""
A: Decimal vers octal
B: Decimal vers binaire
C: Decimal vers hexadecimal
D: Binaire vers decimal sur 8 bits
E: Retour
 
Veuillez entrer votre choix: """)
 
    if choice == "A" or choice =="a":
        nombre_decimal=int(input('Votre nombre en base 2?'))
        print(nombre_decimal,"en base 8 est", oct(nombre_decimal))
        time.sleep(3)
       
    elif choice == "B" or choice =="b":
        nombre_decimal=int(input('Votre nombre en base 2?'))
        print(nombre_decimal,"en base 10 est", bin(nombre_decimal))
        time.sleep(3)
       
    elif choice == "C" or choice =="c":
        nombre_decimal=int(input('Votre nombre en base 2?'))
        print(nombre_decimal,"en base 16 est", hex(nombre_decimal))
        time.sleep(3)
       
    elif choice == "D" or choice =="d":
        print("Ce programme marche seulement avec 8 bits")
        binaire=input("Quel sont les 8 bits de votre nombre binaire?")
        print("""
""")
        if len(binaire)!=8:
            print("Donnez les 8 bits de votre nombre SVP")
            time.sleep(1.5)
            menu_conversions_informatique()
           
        else:
            bit_1=int(binaire[0])*2**0
            bit_2=int(binaire[1])*2**1
            bit_3=int(binaire[2])*2**2
            bit_4=int(binaire[3])*2**3
            bit_5=int(binaire[4])*2**4
            bit_6=int(binaire[5])*2**5
            bit_7=int(binaire[6])*2**6
            bit_8=int(binaire[7])*2**7
           
            print("Votre nombre décimal est ",(bit_1 + bit_2 + bit_3 + bit_4 + bit_5 + bit_6 + bit_7 + bit_8))
           
        time.sleep(3)
    elif choice == "E" or "e":
        menu1()
       
    else:
        print("VOUS NE DEVEZ QUE CHOISIR ENTRE A B C D E!")
        print("Veuillez réessayer")
        menu1()

LE QUIZ : Il comporte 8 questions et calcule ton score en pourcentage. Il fait 46% du script.

#Voici un quiz qui calcul ton score
def jeu():
    score=0
    print("Voici le quiz")
    time.sleep(2)
 
 
    rep_1=input("""En quelle année le premier jeu vidéo a-t-il été créé ?
A: En 1856
B: En 1962
C: En 2005
""")
    if rep_1=="B" or rep_1=="b":
        print("BRAVO")
        score=score+1
        print("score=", score)
        time.sleep(1.5)
    elif rep_1=="A" or rep_1=="a" or rep_1=="C" or rep_1=="c":
        print("FAUX")
        print("score=", score)
        time.sleep(1.5)
    else:
        print("""
Il fallait choisir entre A, B ou C
""")
   
    rep_2=""
    rep_2=input("""Quelle année voit l'invention de la "Game Boy" ?
A: En 1969
B: En 1979
C: En 1989
""")
    if rep_2=="C" or rep_2=="c":
        print("BRAVO")
        score=score+1
        print("score=", score)
        time.sleep(1.5)
    elif rep_2=="B" or rep_2=="b" or rep_2=="A" or rep_2=="a":
        print("FAUX")
        print("score=", score)
        time.sleep(1.5)
    else:
        print("""
Il fallait choisir entre A, B ou C
""")
   
    rep_3=""
    rep_3=input("""Quand es-que la DS est sortis?
A: En 2002
B: En 2005
C: En 2008
""")
    if rep_3=="B" or rep_3=="b":
        print("BRAVO")
        score=score+1
        print("score=", score)
        time.sleep(1.5)
    elif rep_3=="A" or rep_3=="a" or rep_3=="C" or rep_3=="c":
        print("FAUX")
        print("score=", score)
        time.sleep(1.5)
    else:
        print("""
Il fallait choisir entre A, B ou C
""")
   
    rep_4=""
    rep_4=input("""Quelle était la nationalité de Ralph Baer ?
A: Anglaise
B: Allemande
C: Italienne
""")
    if rep_4=="B" or rep_4=="b":
        print("BRAVO")
        score=score+1
        print("score=", score)
        time.sleep(1.5)
    elif rep_4=="A" or rep_4=="a" or rep_4=="C" or rep_4=="c":
        print("FAUX")
        print("score=", score)
        time.sleep(1.5)
    else:
        print("""
Il fallait choisir entre A, B ou C
""")
   
    rep_5=""
    rep_5=input("""D'où vient "Nintendo" ?
A: Du Japon
B: De la Chine
C: D'Europe
""")
 
    if rep_5=="A" or rep_5=="a":
        print("BRAVO")
        score=score+1
        print("score=", score)
        time.sleep(1.5)
    elif rep_5=="B" or rep_5=="b" or rep_5=="C" or rep_5=="c":
        print("FAUX")
        print("score=", score)
        time.sleep(1.5)
    else:
        print("""
Il fallait choisir entre A, B ou C
""")
       
    rep_6=""
    rep_6=input("""En écriture binaire on utilise les symboles:
A: 0 et 1
B: -1 et 1
C: 1 et 2
""")
 
    if rep_6=="A" or rep_6=="a":
        print("BRAVO")
        score=score+1
        print("score=", score)
        time.sleep(1.5)
    elif rep_6=="B" or rep_6=="b" or rep_6=="C" or rep_6=="c":
        print("FAUX")
        print("score=", score)
        time.sleep(1.5)
    else:
        print("""
Il fallait choisir entre A, B ou C
""")
 
    rep_7=""
    rep_7=input("""Un groupement de 8 bits s'appelle:
A: Une brochette
B: Un quintet
C: Un octet
""")
 
    if rep_7=="C" or rep_7=="c":
        print("BRAVO")
        score=score+1
        print("score=", score)
        time.sleep(1.5)
    elif rep_7=="A" or rep_7=="a" or rep_7=="B" or rep_7=="b":
        print("FAUX")
        print("score=", score)
        time.sleep(1.5)
    else:
        print("""
Il fallait choisir entre A, B ou C
""")
       
    rep_8=""
    rep_8=input("""On peut coder sur un octet:
A: 256 valeurs différentes
B: 255 valeurs différentes
C: 356 valeurs différentes
""")
 
    if rep_8=="B" or rep_8=="b":
        print("BRAVO")
        score=score+1
        print("score=", score)
        time.sleep(1.5)
    elif rep_8=="A" or rep_8=="a" or rep_8=="C" or rep_8=="c":
        print("FAUX")
        print("score=", score)
        time.sleep(1.5)
    else:
        print("""
Il fallait choisir entre A, B ou C
""")
       
       
    pourcentage=(100*score/8)
    print("Tu as eu",pourcentage,"% de bonnes réponses")
    if pourcentage==100:
        print("BRAVO! Un score parfait")
   
    elif pourcentage==0:
        print("Tu doit mieux faire")
 
    elif 0<pourcentage<=20:
        print("C'est bof bof")
 
    elif 20<pourcentage<=50:
        print("Tu peux faire mieux")
   
    elif 50<pourcentage<=80:
        print("C'est bien")
 
    elif 80<pourcentage<100:
        print("Avec un peu d'effort tu arriveras au 100%")
       
    time.sleep(3)
    menu1()

Certaine fonctions contiennent des moyens d’ »anti-bug », c’est à dire si l’utilisateur rentre une donnée fausse il serait prévenu pour qu’aucune erreur s’affiche.

Pour ce servir de certaine fonctions, comme sys.stdout.write(), time.sleep() ou Fraction(). Nous avons importer les modules suivants :

import sys
import time
from fractions import *

A la fin du programme, nous avons du mettre :

login()
menu1()
menu2()
demande_de_points()
option_1()
option_2()
option_3()
option_4()
menu_conversions_informatique()
jeu()

Afin de d’exécuter chaque fonctions.

Télécharger le programme :