Spaces:
Runtime error
Runtime error
import streamlit as st | |
import pandas as pd | |
PLAYERS = { | |
"Player 1": {"Sketch": "π¨", "Character": "π§ββοΈ", "Player Board": "π", "Action Dice": "π²", "Health Tokens": "β€οΈ", "Coin Tokens": "π°", "Battle Tokens": "βοΈ", "Attack": 5, "Defense": 3}, | |
"Player 2": {"Sketch": "π¨", "Character": "π§ββοΈ", "Player Board": "π", "Action Dice": "π²", "Health Tokens": "β€οΈ", "Coin Tokens": "π°", "Battle Tokens": "βοΈ", "Attack": 4, "Defense": 4}, | |
} | |
MONSTERS = { | |
"Goblin": {"Picture": "πΊ", "Description": "A small, mischievous creature with sharp teeth and claws.", "Attack": 2, "Defense": 1}, | |
"Orc": {"Picture": "πΉ", "Description": "A large, brutish humanoid with green skin and a nasty temperament.", "Attack": 4, "Defense": 2}, | |
"Dragon": {"Picture": "π²", "Description": "A massive, fire-breathing beast with scales as hard as steel.", "Attack": 6, "Defense": 5}, | |
} | |
def get_random_monster(): | |
monster_name = st.session_state.selected_monster | |
if monster_name: | |
monster = MONSTERS[monster_name] | |
st.write("Picture: ", monster["Picture"]) | |
st.write("Description: ", monster["Description"]) | |
st.write("Attack: ", monster["Attack"]) | |
st.write("Defense: ", monster["Defense"]) | |
return monster | |
else: | |
return None | |
def save_data(): | |
data = pd.DataFrame.from_dict(st.session_state.players, orient="index") | |
filename = "player_data.csv" | |
data.to_csv(filename) | |
st.write(f"Player data saved to {filename}") | |
def display_player_card(player_name, player_data): | |
st.write(f"**{player_name}**") | |
for key, value in player_data.items(): | |
st.write(f"{key}: {value}") | |
def battle_player_card(): | |
selected_player = st.session_state.selected_player | |
selected_monster = st.session_state.selected_monster | |
if not selected_player: | |
st.warning("Please select a player card.") | |
return | |
if not selected_monster: | |
st.warning("Please select a monster.") | |
return | |
player_data = PLAYERS[selected_player] | |
monster_data = MONSTERS[selected_monster] | |
if player_data["Attack"] > monster_data["Defense"]: | |
st.success("You defeated the monster!") | |
else: | |
st.error("The monster defeated you.") | |
save_data() | |
def main(): | |
st.set_page_config(page_title="Player Cards and Monsters") | |
st.title("Player Cards and Monsters") | |
st.write("π Select a player card to reveal a monster and battle it! π") | |
if "players" not in st.session_state: | |
st.session_state.players = {} | |
st.sidebar.title("π Select a Player Card") | |
selected_player = st.sidebar.radio("Select a player:", list(PLAYERS.keys())) | |
display_player_card(selected_player, PLAYERS[selected_player]) | |
if st.button("π₯ Battle!"): | |
st.session_state.selected_player = selected_player | |
st.session_state.selected_monster = st.sidebar.selectbox("Select a monster:", list(MONSTERS.keys())) | |
monster = get_random_monster() | |
if monster: | |
battle_player_card() | |
if __name__ == "__main__": | |
main() | |