Simulador de Dado de RPG em Python
Dados de 4, 6, 8, 10, 12, 20 e até 100 lados são usados para definir ações, ataques, acertos críticos e muito mais.
Mas e se você pudesse substituir os dados físicos por um simulador em Python?
É exatamente isso que vamos criar neste artigo: um simulador de dado de RPG simples, funcional e expansível.
Este projeto é perfeito para iniciantes, pois envolve:
Uso da biblioteca
randompara gerar números aleatórios.Estruturas de repetição (
while,for).Entrada de dados (
input).Funções para organizar o código.
🔹 1. Como funciona o simulador?
A ideia é simples:
O usuário escolhe qual dado quer rolar (por exemplo, D6, D20, etc.).
O programa sorteia um número entre
1e o valor máximo do dado.O resultado é exibido no terminal.
O usuário pode rolar novamente ou encerrar o programa.
🔹 2. Importando bibliotecas
Vamos precisar apenas do módulo random, que já vem no Python.
import random
🔹 3. Estrutura básica de rolagem
Podemos criar uma função simples para rolar um dado:
def rolar_dado(lados):
return random.randint(1, lados)
Se chamarmos rolar_dado(20), por exemplo, teremos um resultado de 1 a 20.
🔹 4. Criando o simulador interativo
Agora, vamos permitir que o jogador escolha qual dado rolar.
import random
def rolar_dado(lados):
return random.randint(1, lados)
def simulador():
print("🎲 Bem-vindo ao Simulador de Dados de RPG!")
while True:
dado = input("\nDigite o dado que deseja rolar (ex: D6, D20) ou 'sair' para encerrar: ").lower()
if dado == "sair":
print("👋 Encerrando o simulador. Até a próxima aventura!")
break
if dado.startswith("d") and dado[1:].isdigit():
lados = int(dado[1:])
resultado = rolar_dado(lados)
print(f"🎲 Você rolou um {dado.upper()} e saiu: {resultado}")
else:
print("⚠️ Entrada inválida! Tente no formato correto (ex: D6, D12, D20).")
🔹 5. Rodando várias vezes
Às vezes, precisamos rolar mais de um dado ao mesmo tempo (exemplo: 3d6).
Vamos adicionar essa funcionalidade:
import random
def rolar_varios_dados(quantidade, lados):
resultados = [random.randint(1, lados) for _ in range(quantidade)]
return resultados, sum(resultados)
def simulador():
print("🎲 Simulador de Dados de RPG")
while True:
comando = input("\nDigite o dado (ex: D6, 3D20) ou 'sair' para encerrar: ").lower()
if comando == "sair":
print("👋 Encerrando o simulador. Boa sorte nas suas aventuras!")
break
if "d" in comando:
partes = comando.split("d")
if partes[0] == "": # Exemplo: "d20"
quantidade = 1
else:
quantidade = int(partes[0])
if partes[1].isdigit():
lados = int(partes[1])
resultados, soma = rolar_varios_dados(quantidade, lados)
print(f"🎲 Resultado dos {quantidade}D{lados}: {resultados} (Soma: {soma})")
else:
print("⚠️ Número de lados inválido.")
else:
print("⚠️ Entrada inválida. Use o formato correto (ex: D6, 2D10, 3D20).")
🔹 6. Exemplo de uso
🎲 Simulador de Dados de RPG
Digite o dado (ex: D6, 3D20) ou 'sair' para encerrar: D20
🎲 Resultado dos 1D20: [17] (Soma: 17)
Digite o dado (ex: D6, 3D20) ou 'sair' para encerrar: 3D6
🎲 Resultado dos 3D6: [4, 6, 2] (Soma: 12)
Digite o dado (ex: D6, 3D20) ou 'sair' para encerrar: sair
👋 Encerrando o simulador. Boa sorte nas suas aventuras!
🔹 7. Melhorias possíveis
Esse simulador já é funcional, mas você pode deixá-lo ainda mais interessante:
✅ Interface gráfica (GUI) com Tkinter ou PyQt.
✅ Adicionar modificadores (exemplo: 1D20+3).
✅ Registrar histórico de rolagens em um arquivo .txt.
✅ Sistema de cores e emojis para deixar a saída mais divertida.
✅ Modo “mestre de RPG”, permitindo salvar pré-configurações de rolagens.
🔹 8. Conclusão
Neste artigo, você aprendeu a:
Usar a função
random.randint()para simular dados.Criar funções para rolar um ou vários dados.
Interpretar comandos como
D20ou3D6.Deixar o jogo interativo e extensível.
O simulador de dado de RPG em Python é um projeto simples, mas muito útil para jogadores e mestres de RPG. Além disso, é um ótimo exercício para treinar entrada de dados, loops e manipulação de strings.

Comentários
Postar um comentário