from random import randint
import random
class Personnage :
def __init__ ( self , nom , exp , cat , inventaire ) :
self . nom = nom
self . pdv = 20
self . exp = exp
self . cat = cat
self . inventaire = inventaire
def jet_attaque ( self ) :
de = randint ( 1 , 20 )
attack = self . exp * gamedata [ 1 ] [ gamedata [ 0 ] . index ( self . cat ) ]
print ( " Vous lancez le dé icosaèdre " , chr ( 10 ) , " Le nombre obtenu est " , de , " Celui-ci est amplifié par la grande puissance de " , self . nom , self . cat , " qui ajoute de " , attack )
return attack + de
def jet_defense ( self ) :
de = randint ( 1 , 20 )
defense = self . exp * gamedata [ 2 ] [ gamedata [ 0 ] . index ( self . cat ) ]
print ( " Vous lancez le dé icosaèdre " , chr ( 10 ) , " Le nombre obtenu est " , de , " Celui-ci est amplifié par la grande puissance de " , self . nom , self . cat , " qui ajoute de " , defense )
return defense + de
def change_pdv ( self , status ) :
loss = randint ( 1 , status )
self . pdv = self . pdv - loss
print ( " Vous perdez " , loss , " points de vie " )
def change_exp ( self ) :
self . exp + = 1
def affiche_caracteristiques ( self ) :
print ( self . nom , self . cat , chr ( 10 ) , " Points de vie " , self . pdv , " Expérience " , self . exp )
def affiche_inventaire ( self ) :
print ( " Voici votre inventaire " )
for item in self . inventaire :
print ( item )
class Personnage2 :
def __init__ ( self , exp ) :
self . nom2 = random . choice ( veryrandomizednames [ 0 ] )
self . pdv2 = 20
self . exp2 = exp
self . cat2 = random . choice ( gamedata [ 0 ] )
self . inventaire2 = [ gamedata [ 3 ] [ gamedata [ 0 ] . index ( self . cat2 ) ] ]
def jet_attaque ( self ) :
de = randint ( 1 , 20 )
attack = self . exp2 * gamedata [ 1 ] [ gamedata [ 0 ] . index ( self . cat2 ) ]
print ( player2 . nom2 , player2 . cat2 , " lance le dé icosaèdre " , chr ( 10 ) , " Le nombre obtenu est " , de , " Celui-ci est amplifié par la grande puissance de " , self . nom2 , self . cat2 , " qui ajoute de " , attack )
return attack + de
def jet_defense ( self ) :
de = randint ( 1 , 20 )
defense = self . exp2 * gamedata [ 2 ] [ gamedata [ 0 ] . index ( self . cat2 ) ]
print ( player2 . nom2 , player2 . cat2 , " lance le dé icosaèdre " , chr ( 10 ) , " Le nombre obtenu est " , de , " Celui-ci est amplifié par la grande puissance de " , self . nom2 , self . cat2 , " qui ajoute de " , defense )
return defense + de
def change_pdv ( self , status ) :
loss = randint ( 1 , status )
self . pdv2 = self . pdv2 - loss
print ( player2 . nom2 , player2 . cat2 , " perd " , loss , " points de vie " )
def affiche_caracteristiques ( self ) :
print ( self . nom2 , self . cat2 , chr ( 10 ) , " Points de vie " , self . pdv2 , " Expérience " , self . exp2 )
def menu1 ( answer ) :
if answer == " help " :
answer = 5
try :
answer = int ( answer )
except :
print ( " Entrez une réponse valide " )
answer = 0
if answer == 5 :
print ( helpprofile )
back = " invalid "
elif int ( answer ) > 0 and int ( answer ) < 5 :
back = gamedata [ 0 ] [ answer - 1 ]
else :
back = " invalid "
return back
def interact ( answer ) :
if answer == " help " :
print ( " écrivez ' stats ' pour afficher vos statistiques " )
print ( " écrivez ' stock ' pour afficher votre inventaire " )
print ( " écrivez ' advers ' pour avoir les statisiques de " , player2 . nom2 , player2 . cat2 )
print ( " écrivez ' heal ' pour utiliser votre potion et gagner 3 points de vie " )
if answer == " stats " :
player . affiche_caracteristiques ( )
if answer == " stock " :
player . affiche_inventaire ( )
if answer == " advers " :
player2 . affiche_caracteristiques ( )
if answer == " heal " and player . inventaire . count ( " potion " ) :
player . inventaire . remove ( " potion " )
player . pdv + = 3
gamedata = [ [ " Le Guerrier " , " Le Magicien " , " Le Voleur " , " L ' Elfe " ] , [ 10 , 10 , 3 , 8 ] , [ 8 , 7 , 9 , 10 ] , [ " épée " , " baton " , " dague " , " arc " ] ]
veryrandomizednames = [ [ " Nico " , " Manu " , " Rod " ] , [ " Desforêts " , " Delay " , " Cargnelutti " ] ]
exp = 1
helpprofile = " Encyclopédie : " + chr ( 10 ) + " Le Guerrier : --- Attaque 10 --- Défense 8 --- " + chr ( 10 ) + " Le Magicien : --- Attaque 10 --- Défense 7 --- " + chr ( 10 ) + " Le Voleur : --- Attaque 3 --- Défense 9 --- " + chr ( 10 ) + " L ' Elfe : --- Attaque 8 --- Défense 10 --- "
print ( " Bienvenue dans The Elder Scrolls VII " )
nom = input ( " Entrez votre nom : " )
print ( " Choisissez votre catégorie : " , chr ( 10 ) , " 1)Le Guerrier " , chr ( 10 ) , " 2)Le Magicien " , chr ( 10 ) , " 3)Le Voleur " , chr ( 10 ) , " 4)L ' Elfe " , chr ( 10 ) , " entrez ' help ' pour avoir le profil de chaque catégorie " )
command = input ( " entrez un numéro (1 à 4) pour devenir membre de la catégorie correspondante : " )
command = menu1 ( command )
if command == " invalid " :
while command == " invalid " :
command = menu1 ( input ( ) )
cat = command
inventaire = [ gamedata [ 3 ] [ gamedata [ 0 ] . index ( cat ) ] ]
inventaire . append ( " potion " )
print ( " Bonjour " , nom , cat )
print ( " Entrez ' help ' pour découvrir toutes vos fonctions " )
player = Personnage ( nom , exp , cat , inventaire )
while player . pdv > 0 :
player2 = Personnage2 ( exp )
print ( " Voici " , player2 . nom2 , player2 . cat2 )
while player . pdv > 0 and player2 . pdv2 > 0 :
interact ( input ( ) )
attack1 = player . jet_attaque ( )
defense2 = player2 . jet_defense ( )
if attack1 > defense2 :
print ( " Votre jet d ' attaque est supérieur au jet de défense de l ' adversaire ( " , attack1 , " / " , defense2 , " ) " )
player2 . change_pdv ( 8 )
else :
print ( " Votre jet d ' attaque est inférieur au jet de défense de l ' adversaire ( " , attack1 , " / " , defense2 , " ) " )
player . change_pdv ( 4 )
interact ( input ( ) )
attack2 = player2 . jet_attaque ( )
defense1 = player . jet_defense ( )
if attack2 > defense1 :
print ( " Votre jet de défense est inférieur au jet d ' attaque ' de l ' adversaire ( " , attack2 , " / " , defense1 , " ) " )
player . change_pdv ( 8 )
else :
print ( " Votre jet de défense est supérieur au jet d ' attaque de l ' adversaire ( " , attack2 , " / " , defense1 , " ) " )
player2 . change_pdv ( 4 )
if player2 == 0 :
print ( " Vous avez vaincu " , player2 . nom2 , player2 . cat2 )
print ( " Vous gagnez 1 point d ' expérience et vos points de vie sont régénérés " )
player . pdv = 20
player . exp + = 1 ; exp + = 1
print ( " Vous avez été vaincu par le Seigneur " , veryrandomizednames [ 1 ] [ veryrandomizednames [ 0 ] . index ( player2 . nom2 ) ] )
print ( " FIN DU JEU " )