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