SachaT
2 months ago
1 changed files with 120 additions and 75 deletions
@ -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?") |
Player_2_nom = input("À votre tour, Player 2, comment vous appelez-vous ? ") |
||||
print ("bonjour cher",Player_2_nom) |
print("Bonjour cher", Player_2_nom) |
||||
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.") |
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) |
||||
Player_1 = Personnage (Player_1_nom, Player_1_cat) |
|
||||
Player_2 = Personnage (Player_2_nom, Player_2_cat) |
|
||||
|
|
||||
def tour (): |
#les joueur ;) |
||||
while Player_1.pdv > 0 and player_2.pdv > 0 : |
Player_1 = Personnage(Player_1_nom, Player_1_cat) |
||||
PL1_A = player_1.jet_attaque() |
Player_2 = Personnage(Player_2_nom, Player_2_cat) |
||||
PL2_D = player_2.jet_defence() |
|
||||
|
|
||||
if PL1_A > PL2_D: |
return Player_1, Player_2 |
||||
Player_1.change_pdv(-randint(1,8)) |
|
||||
|
|
||||
|
|
||||
|
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 attaque > defense: |
||||
|
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…
Reference in new issue