DEV Community

Cover image for RPG Game - Python
Samuell Morgesntern de Souza
Samuell Morgesntern de Souza

Posted on

RPG Game - Python

Introduction to game developed with python in development!

The purpose of this project is to improve my python skills and why not with a text game? for now it's basically a character registration, allowing you to choose between existing classes and also being possible for the user to create a class, I made up a brief introduction, hope you like it.

import random

class Character:
    def __init__(self):
        self.name = ""
        self.character_class = ""
        self.powers = []
        self.life = 0
        self.defense = 0
        self.mana = 0
        self.stamina = 0

    def create_character(self):
        print("=== Criação de Personagem ===")
        self.name = input("Nome do Personagem: ")
        self.character_class = input("Classe do Personagem (Mago, Guerreiro ou Arqueiro): ")

        if self.character_class.lower() == "mago":
            self.life = 60
            self.defense = 30
            self.mana = 90
            self.stamina = 40
        elif self.character_class.lower() == "guerreiro":
            self.life = 80
            self.defense = 60
            self.mana = 20
            self.stamina = 70
        elif self.character_class.lower() == "arqueiro":
            self.life = 70
            self.defense = 40
            self.mana = 50
            self.stamina = 90
        else:
            print("Classe inválida. Escolha entre Mago, Guerreiro ou Arqueiro.")
            return

        powers_input = input("Poderes do Personagem (separe por vírgula caso tenha mais de um): ")
        self.powers = powers_input.split(",")

        print("\n=== Detalhes do Personagem ===")
        self.print_character_details()

    def edit_character(self):
        print("\n=== Edição de Personagem ===")
        self.print_character_details()
        print("Escolha o que deseja editar:")
        print("1 - Nome do Personagem")
        print("2 - Classe do Personagem")
        print("3 - Poderes do Personagem")
        print("4 - Confirmar e sair da edição")

        choice = input("Opção: ")

        if choice == "1":
            self.name = input("Novo Nome do Personagem: ")
        elif choice == "2":
            self.character_class = input("Nova Classe do Personagem (Mago, Guerreiro ou Arqueiro): ")
            if self.character_class.lower() != "mago":
                self.life = random.randint(1, 100)
                self.defense = random.randint(1, 100)
                self.mana = random.randint(1, 100)
                self.stamina = random.randint(1, 100)
        elif choice == "3":
            powers_input = input("Novos Poderes do Personagem (separe por vírgula caso tenha mais de um): ")
            self.powers = powers_input.split(",")
        elif choice == "4":
            print("Edição concluída.")
        else:
            print("Opção inválida. Tente novamente.")

        if choice != "4":
            self.edit_character()

    def print_character_details(self):
        print(f"Nome do Personagem: {self.name}")
        print(f"Classe do Personagem: {self.character_class}")
        print(f"Poderes do Personagem: {', '.join(self.powers)}")
        print(f"Vida: {self.life}")
        print(f"Defesa: {self.defense}")
        print(f"Mana: {self.mana}")
        print(f"Estamina: {self.stamina}")

    def find_weapon(self):
        if self.character_class.lower() == "mago":
            print("Enquanto andava desorientado pela floresta, você tropeça numa cabana.")
            print("Dentro dela, você encontra uma varinha mágica que aumenta seus poderes!")
            weapon_choice = input("Deseja pegar a varinha mágica? (Digite 's' para sim ou 'n' para não): ")
            if weapon_choice.lower() == 's':
                self.mana += 20
                print("Você pegou a varinha mágica e seus poderes aumentaram!")
            else:
                print("Você decidiu não pegar a varinha mágica.")
        elif self.character_class.lower() == "guerreiro":
            print("Enquanto andava desorientado pela floresta, você tropeça numa cabana.")
            print("Dentro dela, você encontra uma espada robusta que aumenta sua força!")
            weapon_choice = input("Deseja pegar a espada robusta? (Digite 's' para sim ou 'n' para não): ")
            if weapon_choice.lower() == 's':
                self.life += 10
                self.defense += 10
                print("Você pegou a espada robusta e sua força aumentou!")
            else:
                print("Você decidiu não pegar a espada robusta.")
        elif self.character_class.lower() == "arqueiro":
            print("Enquanto andava desorientado pela floresta, você tropeça numa cabana.")
            print("Dentro dela, você encontra um arco preciso que aumenta sua destreza!")
            weapon_choice = input("Deseja pegar o arco preciso? (Digite 's' para sim ou 'n' para não): ")
            if weapon_choice.lower() == 's':
                self.stamina += 20
                print("Você pegou o arco preciso e sua destreza aumentou!")
            else:
                print("Você decidiu não pegar o arco preciso.")
        else:
            print("Enquanto andava desorientado pela floresta, você tropeça numa cabana, mas não encontra nada útil.")

character = Character()
character.create_character()

print("\nDeseja editar o personagem?")
print("1 - Sim")
print("2 - Não")
edit_choice = input("Escolha: ")

if edit_choice == "1":
    character.edit_character()

character.find_weapon()
Enter fullscreen mode Exit fullscreen mode

accepting subjects! :)

Top comments (0)