fromrandomimportrandint#definition des fonction
defsauvegarde():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()defrenit():save_w=open('sauvegarde.txt','w')save_w.close()save_w=open('inventaire.txt','w')save_w.close()renit()#definitions des classes
classPersonage:def__init__(self,nom,vie,vie_max,cred,xp,level,arme,arme_p):self.name=nomself.vie=vieself.vie_max=vie_maxself.cred=credself.xp=xpself.level=levelself.arme=armeself.arme_p=arme_pdefattaque(self,cible):cible.vie=cible.vie-self.arme_pif (cible.vie<=0):cible.vie=0return1else:return0defrecu_vie(self,vie):vie_rest=self.vie+vieif (vie_rest>self.vie_max):self.vie=self.vie_maxelse:self.vie=vie_restdefperd_credit(self,cred):cred_rest=self.cred-credif(cred_rest>=0):self.cred=cred_restreturn1else:return0defgain_credit(self,cred):self.cred=self.cred+creddefgain_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_levelself.level=self.level+1self.vie_max=self.vie_max+150self.vie=self.vie_maxelse:self.xp=int(xp)defchange_arme(self,arme,arme_p):self.arme=armeself.arme_p=arme_pclassAdverssaire:def__init__(self,nom,vie,vie_max,level,arme):self.name=nomself.vie=vieself.vie_max=vie_maxself.level=levelself.arme=armedefattaque(self,cible):x=int(cible.arme_p)y=int(cible.arme_p/7)z=randint(y,x)cible.vie=cible.vie-zif (cible.vie<=0):cible.vie=0return1else:return0# 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=0fin=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=1elif(rep=="/shop"):shop=open('shop.txt','r')x=1i=1while(x==1):num=shop.readline().replace('\n','')name_o=shop.readline().replace('\n','')cred=shop.readline().replace('\n','')if(num==""):x=0shop.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=1shop=open('shop.txt','r')while(x==1):num=shop.readline().replace('\n','')if(num==""):x=0shop.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=0z=0li=[]f=open("inventaire.txt","r")while(i==0):ligne=f.readline()ifname_oinligne: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=cz=1elif(ligne==''):i=1li.append(ligne)g=open('inventaire.txt','w')g.close()f.close()h=open('inventaire.txt','a')p=len(li)y=0while(y<p):ligne=li[y]h.write(str(ligne))y=y+1if(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_omoi.arme_p=opi=0z=0li=[]f=open("inventaire.txt","r")while(i==0):ligne=f.readline()ifname_oinligne:a=f.readline()b=f.readline()c=f.readline()li.append(ligne)li.append(a)li.append(b)ligne=cz=1elif(ligne==''):i=1li.append(ligne)g=open('inventaire.txt','w')g.close()f.close()h=open('inventaire.txt','a')p=len(li)y=0while(y<p):ligne=li[y]h.write(str(ligne))y=y+1if(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)+xadver=Adverssaire('cyclope',vie_adver,vie_adver,moi.level,'poing')combat=1while(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=0else:adver.attaque(moi)print('touché , il me reste '+str(moi.vie)+'/'+str(moi.vie_max)+'point de vie')if(moi.vie==0):game_over=1combat=0if(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=0while(x==0):name_o_inv=invent.readline().replace('\n','')if (name_o_inv==''):x=1else: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=0invent=open("inventaire.txt",'r')while(y==0):name_o_inv=invent.readline().replace('\n','')if (name_o_inv==''):y=1elif(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=0nb_use=exempvie_rec=(op_o_inv*int(nb_use))moi.recu_vie(vie_rec)sauvegarde()x=0li=[]f=open("inventaire.txt","r")while(x==0):ligne=f.readline()ifname_o_invinligne:a=f.readline()b=f.readline()c=f.readline()if(nb_rest==0):a=0b=0c=0ligne=f.readline()else:li.append(ligne)li.append(a)li.append(b)li.append(str(nb_rest)+'\n')ligne=''elif(ligne==''):x=1li.append(ligne)g=open('inventaire.txt','w')g.close()f.close()h=open('inventaire.txt','a')x=len(li)y=0while(y<x):ligne=li[y]h.write(ligne)y=y+1h.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:
Ensure the proper functioning of the site (essential cookies); and
Track your browsing to send you personalized communications if you have created a professional account on the site and can be contacted (audience measurement cookies).
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.