jeu.py

Created by toronico07

Created on January 12, 2022

15.1 KB


from random import randint
#definition des fonction
def sauvegarde():
    save_w = open('sauvegarde.txt','w')
    save_w.write(moi.name.replace('\n','') + '\n'+ str(moi.cred) + '\n' + str(moi.xp) + '\n' + str(moi.level) + '\n' +str(moi.vie) + '\n' + str(moi.vie_max) + '\n' + moi.arme.replace('\n','') + '\n' + str(moi.arme_p))
    save_w.close()
def renit():
    save_w = open('sauvegarde.txt','w')
    save_w.close()
    save_w = open('inventaire.txt','w')
    save_w.close()

renit()
#definitions des classes
class Personage:
    def __init__(self,nom,vie,vie_max,cred,xp,level,arme,arme_p):

        self.name = nom
        self.vie = vie
        self.vie_max = vie_max
        self.cred = cred
        self.xp = xp
        self.level = level
        self.arme = arme
        self.arme_p = arme_p

    def attaque(self,cible):

        cible.vie = cible.vie - self.arme_p
        if (cible.vie <= 0):
            cible.vie = 0
            return 1
        else:
            return 0
    def recu_vie(self,vie):
        vie_rest = self.vie + vie
        if (vie_rest > self.vie_max):
            self.vie = self.vie_max
        else:
            self.vie = vie_rest
    def perd_credit(self,cred):
        cred_rest = self.cred - cred
        if(cred_rest >= 0):
            self.cred = cred_rest
            return 1
        else:
            return 0
    def gain_credit (self,cred):
        self.cred = self.cred +cred
        
    def gain_xp(self,xp):
        xp = self.xp + int(xp)
        xp_pour_level =int(( self.level / 10 )* 17587)
        if(xp >= xp_pour_level):
            self.xp = int(xp) - xp_pour_level
            self.level = self.level + 1
            self.vie_max = self.vie_max + 150
            self.vie = self.vie_max
        else:
            self.xp = int(xp)
    def change_arme (self,arme,arme_p):
        self.arme = arme
        self.arme_p = arme_p    
    
class Adverssaire:
    def __init__(self,nom,vie,vie_max,level,arme):

        self.name = nom
        self.vie = vie
        self.vie_max = vie_max
        self.level = level
        self.arme = arme
        
    def attaque(self,cible):
        x = int(cible.arme_p)
        y = int(cible.arme_p/7)
        z = randint(y,x)
        cible.vie = cible.vie - z
        if (cible.vie <= 0):
            cible.vie = 0
            return 1
        else:
            return 0  
# verif fichier de sauvegarde
save_r = open('sauvegarde.txt', 'r')
save = save_r.read()
save_r.close()
if (save == ""):
    #demande du nom du joueur
    name = input("Saisissez votre prénom \n")
    rep = input("vous êtes sur(y ou n) \n")
    #on demande au joueur de vérifier son nom
    while(rep != '0'):
        if(rep == 'y'):
            rep='0'
        elif(rep == 'n'):
            name = input("Saisissez votre prénom \n")
            rep='0'
        else:
            rep='0'
    print("donc vous vous appeler ",name," et pour commencer vous disposé de 0xp et 1000 credits, votre niveau est 1")
    save_w = open('sauvegarde.txt','w')
    save_w.write(name + '\n1000 \n0\n1\n100\n100\népée de débutant\n15')
    save_w.close()
    save_inv = open('inventaire.txt','w')
    save_inv.write('épée de débutant\narme\n15\n1\n')
    save_inv.close()
    
else:
    save = 0
    
#importation des données
    
save_r = open('sauvegarde.txt', 'r')

name = save_r.readline().replace('/n','')
cred = int( save_r.readline())
xp = int(save_r.readline())
level = int(save_r.readline())
vie = int(save_r.readline())
vie_max = int(save_r.readline())
arme = save_r.readline().replace('/n','')
arme_p = int(save_r.readline())
save_r.close()
moi= Personage(name,vie,vie_max,cred,xp,level,arme,arme_p)

#début du jeu
game_over = 0
fin = 0 #mise en place de la variable qui mettra fin au jeu
if(save == 0):
    print("bonjour " + moi.name)
while( fin == 0):
    rep = input("vous pouvez accéder à toutes les commandes du jeux avec la commande /info commande \n")
    
    if(rep == "/info commande"):
        print("/fin : mets fin au jeu\n/combat : lance un combat aléatoirement\n/shop : acheter des armes\n/invent te permet d'acceder à ton inventaire\n/renit : réinitialiser la session")
        
    elif(rep == "/fin"):
        fin = 1
        
    elif(rep == "/shop"):
        shop = open('shop.txt', 'r')
        x=1
        i=1
        while(x==1):
            num = shop.readline().replace('\n','')
            name_o = shop.readline().replace('\n','')
            cred = shop.readline().replace('\n','')
            if(num == ""):
                x=0
                shop.close()
            else:
                print(num + ")------------------------------------------------")
                print(name_o +' ' + cred + ' crédits')
                tp = shop.readline().replace('\n','')
                if(tp == "arme"):
                    armeop = shop.readline().replace('\n','')
                    print("Force "+ armeop)
                elif(tp == "nour"):
                    armeop = shop.readline().replace('\n','')
                    print("vie rendu "+ armeop)
        print('\nVous avez ' + str(moi.cred) +' crédits\n')
        rep_shop = input("écrivez le numéro de l'article: ")
        x=1
        shop = open('shop.txt','r')
        while(x==1):
            num = shop.readline().replace('\n','')
            
            if(num == ""):
                x=0
                shop.close()
            else:   
                name_o = shop.readline().replace('\n','')
                cred = int(shop.readline().replace('\n',''))
                typ = shop.readline().replace('\n','')
                op = int(shop.readline().replace('\n',''))
                
                if(num == str(rep_shop)):
                    rep_shop_achat = input('Voulez vous achetez ' + name_o + ' ? ')
                    if(typ == 'nour'):
                        if(rep_shop_achat == 'y'):
                            rep_cb_ob = input("combien en voulez vous ? ")
                            cred = (int(cred) * int(rep_cb_ob))
                            resu = moi.perd_credit(cred)
                            if(resu == 1):
                                moi.gain_xp(int(cred)/3)
                                
                                sauvegarde()
                            
                                i=0
                                z=0
                                li = []
                                f = open("inventaire.txt","r")
                                while(i==0):
                                    ligne = f.readline()
                                    if name_o in ligne :
                                        a = f.readline()
                                        b = f.readline()
                                        c = f.readline().replace('\n','')
                                        c=(int(c)+int(rep_cb_ob))
                                        li.append(ligne)
                                        li.append(a)
                                        li.append(b)
                                        ligne = c
                                        z=1
                                    elif(ligne == ''):
                                        i=1
                                    li.append(ligne)
                                g = open('inventaire.txt','w')
                                g.close()
                                f.close()
                                h = open('inventaire.txt','a')
                                p = len(li)
                                y=0

                                while(y<p):
                                    ligne = li[y]
                                    h.write(str(ligne))
                                    y=y+1
                                if(z==0):
                                    h.write(name_o+'\n')
                                    h.write(typ+'\n')
                                    h.write(str(op)+'\n')
                                    h.write(str(rep_cb_ob)+'\n')
                                h.close()
                                    
                                sauvegarde()
                            else:
                                print("vous n'avez pas assez de crédits")
                    else:
                        if(rep_shop_achat == 'y'):
                            if(moi.perd_credit(cred)):
                                moi.gain_xp(int(cred)/3)
                                    
                                sauvegarde()
                                    
                                if(typ == "arme"):
                                    moi.arme = name_o
                                    moi.arme_p = op
                                    i=0
                                    z=0
                                    li = []
                                    f = open("inventaire.txt","r")
                                    while(i==0):
                                        ligne = f.readline()
                                        if name_o in ligne :
                                            a = f.readline()
                                            b = f.readline()
                                            c = f.readline()
                                            li.append(ligne)
                                            li.append(a)
                                            li.append(b)
                                            ligne = c
                                            z=1
                                        elif(ligne == ''):
                                            i=1
                                        li.append(ligne)
                                    g = open('inventaire.txt','w')
                                    g.close()
                                    f.close()
                                    h = open('inventaire.txt','a')
                                    p = len(li)
                                    y=0

                                    while(y<p):
                                        ligne = li[y]
                                        h.write(str(ligne))
                                        y=y+1
                                    if(z==0):
                                        h.write(name_o+'\n')
                                        h.write(typ+'\n')
                                        h.write(str(op)+'\n')
                                        h.write('1'+'\n')
                                    h.close()
                                        
                                    sauvegarde()
                            else:
                                print("vous n'avez pas assez de crédits")
            
    elif(rep == "/renit"):
        renit()
        quit()
    
    elif(rep == "/info"):
        print('Vous avez ' + str(moi.cred) + ' crédits')
        print('Vous êtes level ' + str(moi.level) + ' et avez ' + str(moi.xp) + ' xp')
        print('Vous avez ' + moi.arme + ' qui fait ' + str(moi.arme_p) + ' de dégats')
        print('vous avez ' + str(moi.vie) + '/' + str(moi.vie_max) + ' points de vie')

    elif(rep == "/combat"):
        x = int(moi.vie_max/2)
        vie_adver = randint(0,x)+x
        adver = Adverssaire('cyclope',vie_adver,vie_adver,moi.level,'poing')
        combat = 1
        while(combat == 1):
            moi.attaque(adver)
            print('adverssaire touché , il lui reste ' + str(adver.vie) + '/' +  str(adver.vie_max) + 'point de vie')
            if(adver.vie == 0):
                combat = 0
            else:
                adver.attaque(moi)
                print('touché , il me reste ' + str(moi.vie) + '/' +  str(moi.vie_max) + 'point de vie')
                if(moi.vie == 0):
                    game_over = 1
                    combat = 0
         
        if(game_over==0):
            cred = randint(int(adver.vie_max),int(adver.vie_max*4))
            xp = randint(int(adver.vie_max/2),int(adver.vie_max*2))
            moi.gain_xp(xp)
            moi.gain_credit(cred)
            print('Vous avez gagné ' + str(cred) + ' crédits et ' + str(xp) + ' xp')
            
            sauvegarde()
                            
        else:
            print('Vous avez perdu .... réinitiatilastion ....')
            renit()
            quit()
    elif(rep =="/invent"):
        invent=open("inventaire.txt",'r')
        x=0
        while(x==0):
            name_o_inv = invent.readline().replace('\n','')
            if (name_o_inv == ''):
                x=1
            else:
                typ_o_inv = invent.readline().replace('\n','')
                op_o_inv = int(invent.readline().replace('\n',''))
                exemp = int(invent.readline().replace('\n',''))
                
                print('-----------------------------------\n' + name_o_inv + ' en ' + str(exemp) + ' fois')
        invent.close()
        rep_invent= input("choisissez votre objet : ")
        y=0
        invent=open("inventaire.txt",'r')
        while(y==0):
            name_o_inv = invent.readline().replace('\n','')
            if (name_o_inv == ''):
                y=1
            elif(name_o_inv == rep_invent):
                typ_o_inv = invent.readline().replace('\n','')
                op_o_inv = int(invent.readline().replace('\n',''))
                exemp = int(invent.readline().replace('\n',''))
                nv = invent.readline().replace('\n','')
                if(typ_o_inv !='arme'):
                    nb_use = input("\nCombien voulez vous en utiliser? ")
                    nb_rest = exemp - int(nb_use)
                    if(nb_rest <0):
                        nb_rest = 0
                        nb_use = exemp
                    vie_rec = (op_o_inv * int(nb_use))
                    moi.recu_vie(vie_rec)
                    sauvegarde()
                    x=0
                    li = []
                    f = open("inventaire.txt","r")
                    while(x==0):
                        ligne = f.readline()
                        if name_o_inv in ligne :
                            a = f.readline()
                            b = f.readline()
                            c = f.readline()
                            if(nb_rest == 0):
                                a=0
                                b=0
                                c=0
                                ligne = f.readline()
                            else:
                                li.append(ligne)
                                li.append(a)
                                li.append(b)
                                li.append(str(nb_rest) +'\n')
                                ligne =''
                        elif(ligne == ''):
                            x=1
                        li.append(ligne)
                    g = open('inventaire.txt','w')
                    g.close()
                    f.close()
                    h = open('inventaire.txt','a')
                    x = len(li)
                    y=0

                    while(y<x):
                        ligne = li[y]
                        h.write(ligne)
                        y=y+1
                    h.close()
                else:
                    moi.change_arme(name_o_inv,op_o_inv)
                    sauvegarde()
                    
        invent.close()
    else:
        print("mauvaise commande!\n")
quit()

During your visit to our site, NumWorks needs to install "cookies" or use other technologies to collect data about you in order to:

With the exception of Cookies essential to the operation of the site, NumWorks leaves you the choice: you can accept Cookies for audience measurement by clicking on the "Accept and continue" button, or refuse these Cookies by clicking on the "Continue without accepting" button or by continuing your browsing. You can update your choice at any time by clicking on the link "Manage my cookies" at the bottom of the page. For more information, please consult our cookies policy.