Demostração de Jogo de RPG em Texto
Aceito sugestões de melhoria do código
import os
import random
MAPA = [
["[", " ", "]"], ["[", " ", "]"], ["[", " ", "]"], ["[", " ", "]"],
["[", " ", "]"], ["[", " ", "]"], ["[", " ", "]"], ["[", " ", "]"],
["[", " ", "]"], ["[", " ", "]"], ["[", " ", "]"], ["[", " ", "]"],
["[", " ", "]"], ["[", " ", "]"], ["[", " ", "]"], ["[", " ", "]"],
["[", " ", "]"], ["[", " ", "]"], ["[", " ", "]"], ["[", " ", "]"],
["[", " ", "]"], ["[", " ", "]"], ["[", " ", "]"], ["[", " ", "]"],
["[", " ", "]"], ["[", " ", "]"], ["[", " ", "]"], ["[", " ", "]"],
["[", " ", "]"], ["[", " ", "]"], ["[", " ", "]"], ["[", " ", "]"],
["[", " ", "]"], ["[", " ", "]"], ["[", " ", "]"], ["[", " ", "]"],
["[", " ", "]"], ["[", " ", "]"], ["[", " ", "]"], ["[", " ", "]"]
]
class Player:
def __init__(self):
self.hp = 10
self.ataque = 5
self.defesa = 8
self.agilidade = 6
def atacar(self, enemy):
dano = random.randint(1, self.ataque)
if enemy.agilidade < dano:
if self.ataque > enemy.defesa:
enemy.hp -= self.ataque - enemy.defesa
if enemy.hp < 0:
enemy.hp = 0
class Enemy:
def __init__(self):
self.hp = 5
self.ataque = 2
self.defesa = 2
self.agilidade = 3
def atacar(self, enemy):
dano = random.randint(1, self.ataque)
if enemy.agilidade < dano:
if self.ataque > enemy.defesa:
enemy.hp = self.ataque - enemy.defesa
class StartGame:
def __init__(self):
self.x = 38
self.y = 1
self.enemy = Enemy()
self.player = Player()
def run(self):
count = 0
for elemento in MAPA:
for i in range(3):
print(elemento[i], end=" ")
count += 1
if count == 4:
count = 0
print()
def mover(self, x, y, item):
print("Direita(a) Cima(w) Direita(d) Baixo(s) Voltar(v)")
direcao = input("Escolha >>> ")
if direcao == "a":
MAPA[self.x][self.y] = " "
self.x -= 1
MAPA[self.x][self.y] = "P"
if direcao == "w":
MAPA[self.x][self.y] = " "
self.x -= 4
MAPA[self.x][self.y] = "P"
if direcao == "d":
MAPA[self.x][self.y] = " "
self.x += 1
MAPA[self.x][self.y] = "P"
if direcao == "s":
MAPA[self.x][self.y] = " "
self.x += 4
MAPA[self.x][self.y] = "P"
def ataque_player(self, enemy):
print("Atacar(a) Defender(d) Habilidade(h) Menu(M)")
ataque = input("Escolha >>> ")
if ataque == "a":
self.player.atacar(enemy)
def combate(self, player, enemy):
continua = True
while continua:
os.system("clear")
print(f'HP {self.player.hp}%')
print(f'HP Enemy {self.enemy.hp}%')
print()
self.ataque_player(self.enemy)
if enemy.hp == 0:
continua = False
self.enemy.atacar(self.player)
if player.hp == 0:
continua = False
if __name__ == "__main__":
start = StartGame()
MAPA[start.x][start.y] = "P"
loop = True
while loop:
start.run()
print("Andar(a), Menu(m) Salvar(s) Carregar(c) Sair(q)")
opcao = input("Escolha >>> ")
if opcao == "a":
loop_mover = True
while loop_mover:
os.system("clear")
start.run()
start.mover(start.x, start.y, MAPA[start.x][start.y])
enemy_ataque = random.randint(0, 5)
start.combate(start.player, start.enemy)
Comentários
Postar um comentário