import streamlit as st import random # Game setup st.title("Fighting Game") # Character stats player = {"name": "Player", "health": 100, "attack_range": (10, 20)} enemy = {"name": "Enemy", "health": 100, "attack_range": (8, 15)} # Game state if "game_over" not in st.session_state: st.session_state.game_over = False if "player_health" not in st.session_state: st.session_state.player_health = player["health"] if "enemy_health" not in st.session_state: st.session_state.enemy_health = enemy["health"] # Functions def attack(attacker, defender, defender_health): damage = random.randint(*attacker["attack_range"]) defender_health -= damage return damage, defender_health # Game loop if not st.session_state.game_over: st.subheader(f"Player Health: {st.session_state.player_health} | Enemy Health: {st.session_state.enemy_health}") # Player's attack if st.button("Attack Enemy"): damage, st.session_state.enemy_health = attack(player, enemy, st.session_state.enemy_health) st.write(f"You attacked the Enemy for {damage} damage!") # Enemy retaliates if alive if st.session_state.enemy_health > 0: damage, st.session_state.player_health = attack(enemy, player, st.session_state.player_health) st.write(f"The Enemy attacked you for {damage} damage!") # Check if game is over if st.session_state.enemy_health <= 0: st.success("You defeated the Enemy!") st.session_state.game_over = True elif st.session_state.player_health <= 0: st.error("You were defeated by the Enemy!") st.session_state.game_over = True else: if st.button("Restart Game"): st.session_state.game_over = False st.session_state.player_health = player["health"] st.session_state.enemy_health = enemy["health"] st.experimental_rerun()