DEV Community

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

Posted on

2

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! :)

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (1)

Collapse
 
frossard profile image
Anderson Frossard

Very good. is it possible to make it run inside a browser? if yes, how could we do it?

The Most Contextual AI Development Assistant

Pieces.app image

Our centralized storage agent works on-device, unifying various developer tools to proactively capture and enrich useful materials, streamline collaboration, and solve complex problems through a contextual understanding of your unique workflow.

👥 Ideal for solo developers, teams, and cross-company projects

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay