Advertisement
mleitejunior

RPG TEXTO TESTES 4

May 24th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.47 KB | None | 0 0
  1. from random import randint
  2.  
  3. #FUNÇÕES GLOBAIS
  4.  
  5. def comandos(tipo):
  6. Comandos = tipo
  7. linha = str.lower(input("> "))
  8. args = linha.split()
  9.  
  10. if len(args) > 0:
  11. comando = args[0]
  12. if comando in Comandos:
  13. Comandos[comando](j)
  14. else:
  15. print("%s não entendeu o seu comando." % j.nome)
  16.  
  17. #CLASSES
  18.  
  19. class Jogador:
  20. def __init__(self):
  21. self.nome = ''
  22. self.vida = 30
  23. self.vida_max = 30
  24. self.modo = 'exploracao'
  25. self.inimigo = ''
  26.  
  27. #EXPLORACAO
  28.  
  29. def explorar(self):
  30. if self.modo == 'exploracao':
  31. if (randint(1,3) == 1):
  32. global goblin
  33. print ("Um Goblin foi encontrado!\n\n >Comandos: ATACAR, FUGIR ou STATUS")
  34. goblin = Inimigo()
  35. goblin.nome = "Goblin"
  36. goblin.vida = randint(18,30)
  37. goblin.vida_max = goblin.vida
  38. self.inimigo = goblin
  39. self.modo = 'batalha'
  40. else:
  41. print ("Você encontrou nada.\n\n >Comandos: EXPLORAR, DESCANSAR, SAIR ou STATUS")
  42.  
  43. def sair(self):
  44. global jogo_rodando
  45. print("SAINDO...")
  46. jogo_rodando = False
  47.  
  48. #BATALHA
  49.  
  50. def atacar(self):
  51. if (randint(1,3) != 1):
  52. print ("%s atacou %s!" % (self.nome, self.inimigo.nome))
  53. dano = randint (9,12)
  54. self.inimigo.vida -= dano
  55. if self.inimigo.vida <= 0:
  56. print("%s morreu...\n%s voltou a explorar!\n\n >Comandos: EXPLORAR, DESCANSAR, SAIR ou STATUS" % (self.inimigo.nome, self.nome))
  57. j.modo = 'exploracao'
  58. else:
  59. goblin.atacar()
  60. if self.vida <= 0:
  61. print("%s morreu!\n\n Obrigado por jogar!" % (self.nome))
  62. global jogo_rodando
  63. jogo_rodando = False
  64.  
  65. else:
  66. print("%s desviou do ataque." % (self.inimigo.nome))
  67. goblin.atacar()
  68.  
  69. def fugir(self):
  70. if (randint(1,3) == 1):
  71. print ("Jogador fugiu!")
  72. j.modo = 'exploracao'
  73.  
  74. else:
  75. print ("Não foi possível fugir.")
  76. goblin.atacar()
  77.  
  78.  
  79. def status(self): print ("Pontos de Vida de %s : %d/%d" % (self.nome, self.vida, self.vida_max))
  80.  
  81. class Inimigo():
  82. def __init__(self):
  83. self.nome = ''
  84. self.vida = 1
  85. self.vida_max = 1
  86. self.dano = (3, 5)
  87.  
  88. def atacar(self):
  89. print("%s atacou %s!\n\n >Comandos: ATACAR, FUGIR ou STATUS" % (self.nome, j.nome))
  90. j.vida -= randint(3, 9)
  91.  
  92. #DICIONÁRIOS DE COMANDOS
  93.  
  94. batalha = {
  95. 'atacar': Jogador.atacar,
  96. 'fugir': Jogador.fugir,
  97. 'status': Jogador.status
  98. }
  99.  
  100. exploracao = {
  101. 'explorar': Jogador.explorar,
  102. 'sair': Jogador.sair,
  103. 'status': Jogador.status
  104. }
  105.  
  106. #INICIO DO JOGO
  107.  
  108. jogo_rodando = True
  109. j = Jogador()
  110.  
  111. j.nome = input ("Digite o nome do seu personagem:")
  112. print ("\n%s está nas montanhas de Machado City\n\n >Comandos: EXPLORAR, DESCANSAR, SAIR ou STATUS" % (j.nome))
  113.  
  114. while jogo_rodando:
  115. if j.modo == 'exploracao':
  116. comandos(exploracao)
  117. elif j.modo == 'batalha':
  118. comandos(batalha)
  119. else:
  120. print ("Jogo encerrado")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement