Spaces:
Sleeping
Sleeping
File size: 1,875 Bytes
f5621cb |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
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() |