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() |