Spaces:
Runtime error
Runtime error
import streamlit as st | |
import random | |
class DNDCharacter: | |
def __init__(self, name, char_class, level, race, background, alignment): | |
self.name = name | |
self.char_class = char_class | |
self.level = level | |
self.race = race | |
self.background = background | |
self.alignment = alignment | |
self.stats = { | |
"Strength": 0, | |
"Dexterity": 0, | |
"Wisdom": 0, | |
"Charisma": 0, | |
"Constitution": 0, | |
"Intelligence": 0 | |
} | |
self.hit_points = 0 | |
self.armor_class = 0 | |
self.initiative = 0 | |
self.speed = 0 | |
self.proficiencies = [] | |
self.equipment = [] | |
self.features_and_traits = [] | |
self.spells = [] | |
def roll_stats(self): | |
for stat in self.stats: | |
self.stats[stat] = random.randint(1, 20) | |
def show_stats(self): | |
st.write("Strength: ", self.stats["Strength"]) | |
st.write("Dexterity: ", self.stats["Dexterity"]) | |
st.write("Wisdom: ", self.stats["Wisdom"]) | |
st.write("Charisma: ", self.stats["Charisma"]) | |
st.write("Constitution: ", self.stats["Constitution"]) | |
st.write("Intelligence: ", self.stats["Intelligence"]) | |
def show_character_sheet(self): | |
st.write("Name: ", self.name) | |
st.write("Class: ", self.char_class) | |
st.write("Level: ", self.level) | |
st.write("Race: ", self.race) | |
st.write("Background: ", self.background) | |
st.write("Alignment: ", self.alignment) | |
self.show_stats() | |
st.write("Hit Points: ", self.hit_points) | |
st.write("Armor Class: ", self.armor_class) | |
st.write("Initiative: ", self.initiative) | |
st.write("Speed: ", self.speed) | |
st.write("Proficiencies: ", self.proficiencies) | |
st.write("Equipment: ", self.equipment) | |
st.write("Features and Traits: ", self.features_and_traits) | |
st.write("Spells: ", self.spells) | |
# Streamlit app | |
st.title("D&D Character Sheet") | |
name = st.text_input("Name") | |
char_class = st.text_input("Class") | |
level = st.number_input("Level", min_value=1, max_value=20, value=1) | |
race = st.text_input("Race") | |
background = st.text_input("Background") | |
alignment = st.text_input("Alignment") | |
if st.button("Roll Stats"): | |
character = DNDCharacter(name, char_class, level, race, background, alignment) | |
character.roll_stats() | |
character.show_character_sheet() | |