Browse Source

finit mais pas l'exp

master
SachaT 1 week ago
parent
commit
ed6e91869b
  1. 129
      miniP1.py

129
miniP1.py

@ -1,90 +1,135 @@
from random import randint from random import randint
class Presonnage: class Personnage:
def __init__(self, nom, cat): def __init__(self, nom, cat):
self.nom = nom self.nom = nom
self.pdv = 20 self.pdv = 20
self.exp = 1 self.exp = 1
self.cat = cat self.cat = cat
self.potions = 1 # Nombre de potions par défaut car sa je trouve pas sinon ou les mettre
if self.cat == "guerrier": if self.cat == "guerrier":
self.inventaire = ["épée", "potion"] self.inventaire = ["épée", "potion"]
if self.cat == "magicien": elif self.cat == "magicien":
self.inventaire = ["bâton", "potion"] self.inventaire = ["bâton", "potion"]
if self.cat == "voleur": elif self.cat == "voleur":
self.inventaire = ["dague", "potion"] self.inventaire = ["dague", "potion"]
if self.cat == "elfe": elif self.cat == "elfe":
self.inventaire = ["arc", "potion"] self.inventaire = ["arc", "potion"]
def jet_attaque(self): def jet_attaque(self):
if self.cat == "guerrier": if self.cat == "guerrier":
return randint(1, 20) + self.exp * 10 return randint(1, 20) + self.exp * 10
if self.cat == "magicien": elif self.cat == "magicien":
return randint(1, 20) + self.exp * 10 return randint(1, 20) + self.exp * 10
if self.cat == "voleur": elif self.cat == "voleur":
return randint(1, 20) + self.exp * 3 return randint(1, 20) + self.exp * 3
if self.cat == "elfe": elif self.cat == "elfe":
return randint(1, 20) + self.exp * 8 return randint(1, 20) + self.exp * 8
def jet_defense(self): def jet_defense(self):
if self.cat == "guerrier": if self.cat == "guerrier":
return randint(1, 20) + self.exp * 8 return randint(1, 20) + self.exp * 8
if self.cat == "magicien": elif self.cat == "magicien":
return randint(1, 20) + self.exp * 7 return randint(1, 20) + self.exp * 7
if self.cat == "voleur": elif self.cat == "voleur":
return randint(1, 20) + self.exp * 9 return randint(1, 20) + self.exp * 9
if self.cat == "elfe": elif self.cat == "elfe":
return randint(1, 20) + self.exp * 10 return randint(1, 20) + self.exp * 10
def change_pdv(self, nb_pdv): def change_pdv(self, nb_pdv):
self.pdv = nb_pdv + self.pdv self.pdv = max(0, self.pdv + nb_pdv) # Les points de vie ne peuvent pas être négatifs enfin je croi
def change_exp(self, nb_exp): def change_exp(self, nb_exp):
self.exp = nb_exp + self.exp self.exp += nb_exp
def affiche_caracteristiques(self): def affiche_caracteristiques(self):
print ("ton nom es",self.nom,"tu es un(e)",self.cat,"tu as",self.pdv,"pv","et",self.exp,"exp") print ("ton nom es",self.nom,"tu es un(e)",self.cat,"tu as",self.pdv,"pv","et",self.exp,"exp")
def affiche_inventaire(self): def affiche_inventaire(self):
print (self.inventaire) print ("ton inventaire",self.inventaire)
def utiliser_potion(self):
if self.potions > 0:
self.change_pdv(10)
self.potions -= 1
print( self.nom, "utilise une potion ! Il reste ",self.potions," potion.")
else:
print( self.nom, "a plus de potions !")
def game(): def game():
Player_1_nom = input ("comment vous appeler vous joueur 1?") Player_1_nom = input("Comment vous appelez-vous, joueur 1 ? ")
print ("bonjour cher",Player_1_nom) print("Bonjour cher", Player_1_nom)
Player_1_cat = input ("quelle catégorie voulez vous etre ? \n Pour un guerrier = 1. \n Pour un magicien = 2. \n Pour un Voleur = 3 \n et enfin un mage = 4.") Player_1_cat = input("Quelle catégorie voulez-vous être ? \n1: Guerrier \n2: Magicien \n3: Voleur \n4: Elfe\n")
if Player_1_cat == "1": if Player_1_cat == "1":
Player_1_cat = "Apprenti Guerrier" Player_1_cat = "guerrier"
if Player_1_cat == "2": elif Player_1_cat == "2":
Player_1_cat = "Puissant Magicien" Player_1_cat = "magicien"
if Player_1_cat == "3": elif Player_1_cat == "3":
Player_1_cat = "vicieux de Voleur" Player_1_cat = "voleur"
if Player_1_cat == "4": elif Player_1_cat == "4":
Player_1_cat = "magnifique Elfe" Player_1_cat = "elfe"
print ("Bien que votre souhait sois exaucé vous etes un" ,Player_1_cat)
print("Vous etes maintenant un(e)", Player_1_cat)
Player_2_nom = input ("A votre tour Joueur 2 comment vous appeler vous?")
print ("bonjour cher",Player_2_nom) Player_2_nom = input("À votre tour, Player 2, comment vous appelez-vous ? ")
Player_2_cat = input ("quelle catégorie voulez vous etre ? \n Pour un guerrier = 1. \n Pour un magicien = 2. \n Pour un Voleur = 3 \n et enfin un mage = 4.") print("Bonjour cher", Player_2_nom)
Player_2_cat = input("Quelle catégorie voulez-vous être ? \n1: Guerrier \n2: Magicien \n3: Voleur \n4: Elfe\n")
if Player_2_cat == "1": if Player_2_cat == "1":
Player_2_cat = "Apprenti Guerrier" Player_2_cat = "guerrier"
if Player_2_cat == "2": elif Player_2_cat == "2":
Player_2_cat = "Puissant Magicien" Player_2_cat = "magicien"
if Player_2_cat == "3": elif Player_2_cat == "3":
Player_2_cat = "Fripon le Voleur" Player_2_cat = "voleur"
if Player_2_cat == "4": elif Player_2_cat == "4":
Player_2_cat = "Un magnifique Elfe" Player_2_cat = "elfe"
print ("Bien que votre souhait sois exaucé vous etes un" ,Player_2_cat)
print("Vous etes maintenant un(e)", Player_2_cat)
#les joueur ;)
Player_1 = Personnage(Player_1_nom, Player_1_cat) Player_1 = Personnage(Player_1_nom, Player_1_cat)
Player_2 = Personnage(Player_2_nom, Player_2_cat) Player_2 = Personnage(Player_2_nom, Player_2_cat)
def tour (): return Player_1, Player_2
while Player_1.pdv > 0 and player_2.pdv > 0 :
PL1_A = player_1.jet_attaque()
PL2_D = player_2.jet_defence()
def tour(attaquant, defenseur):
action = input(attaquant.nom + " vous pouvez attaquer ou utiliser une potion de soins (il vous reste " + str(attaquant.potions) + " potion(s)).\n"
+ "Quelle est votre action ? (A pour attaquer / P pour utiliser une potion) ")
if action == "A":#il y a un probleme que j'arrive pas a resoudre c'est si la personne mes pas en majuscule sa fonctionne pas
attaque = attaquant.jet_attaque()
defense = defenseur.jet_defense()
print(attaquant.nom + " attaque avec un score de " + str(attaque) + " !")
print(defenseur.nom + " se défend avec un score de " + str(defense) + " !")
if PL1_A > PL2_D: if attaque > defense:
Player_1.change_pdv(-randint(1,8)) dommages = -randint(1, 8)
defenseur.change_pdv(dommages)
print(defenseur.nom + " subit " + str(-dommages) + " points de dégâts !")
else:
dommages = -randint(1, 4)
attaquant.change_pdv(dommages)
print(attaquant.nom + " subit " + str(-dommages) + " points de dégâts !")
print(defenseur.nom + " parvient à se défendre !")
elif action == "P":
attaquant.utiliser_potion()
attaquant.affiche_caracteristiques()
defenseur.affiche_caracteristiques()
# Lancer la partie je me suis aider sur internet pour la fin comment arreter la boucle grace au break.
Player_1, Player_2 = game()
while Player_1.pdv > 0 and Player_2.pdv > 0:
tour(Player_1, Player_2)
if Player_2.pdv <= 0:
print(Player_1.nom + " a gagné !")
break
tour(Player_2, Player_1)
if Player_1.pdv <= 0:
print(Player_2.nom + " a gagné !")#je ne sais pas pourquoi se ne met pas que le gagnant a gagner.
Loading…
Cancel
Save