import streamlit as st
import random

# Set up the app title and description
st.set_page_config(page_title="Rock Paper Scissors", page_icon="✂️", layout="centered")

st.title("Rock Paper Scissors Game ✊🖐️✌️")
st.markdown("""
    Play a game of **Rock-Paper-Scissors** against the computer!  
    Choose your move below, and see if you can outscore the machine.
""")

# Initialize session state variables for scores
if 'user_score' not in st.session_state:
    st.session_state['user_score'] = 0
if 'computer_score' not in st.session_state:
    st.session_state['computer_score'] = 0

# Choices for the game
choices = ["Rock", "Paper", "Scissors"]

# Mapping choices to emojis
emoji_map = {"Rock": "✊", "Paper": "🖐️", "Scissors": "✌️"}

# Function to determine the winner and update scores
def determine_winner(user_choice, computer_choice):
    if user_choice == computer_choice:
        return "It's a tie! 🤝"
    elif (
        (user_choice == "Rock" and computer_choice == "Scissors") or
        (user_choice == "Paper" and computer_choice == "Rock") or
        (user_choice == "Scissors" and computer_choice == "Paper")
    ):
        st.session_state['user_score'] += 1
        return "You win! 🎉"
    else:
        st.session_state['computer_score'] += 1
        return "You lose! 😢"

# Display current scores
st.sidebar.header("Scores")
st.sidebar.write(f"**Your Score:** {st.session_state['user_score']}")
st.sidebar.write(f"**Computer's Score:** {st.session_state['computer_score']}")

# User's choice
user_choice = st.radio("Choose your move:", choices)

# Generate computer's choice and play the game
if st.button("Play"):
    computer_choice = random.choice(choices)
    
    # Display choices
    st.write(f"**You chose:** {emoji_map[user_choice]} {user_choice}")
    st.write(f"**Computer chose:** {emoji_map[computer_choice]} {computer_choice}")
    
    # Determine the winner
    result = determine_winner(user_choice, computer_choice)
    st.subheader(result)

# Reset Scores Button
if st.sidebar.button("Reset Scores"):
    st.session_state['user_score'] = 0
    st.session_state['computer_score'] = 0
    st.sidebar.success("Scores have been reset!")