import streamlit as st import random import google.generativeai as genai import os GOOGLE_API_KEY = os.getenv("Gemini") genai.configure(api_key=GOOGLE_API_KEY) model = genai.GenerativeModel('gemini-pro') # Define the moves moves = ["Rock", "Paper", "Scissors"] # Function to determine the winner def determine_winner(player_move, computer_move): if player_move == computer_move: return "It's a tie!" elif (player_move == "Rock" and computer_move == "Scissors") or \ (player_move == "Paper" and computer_move == "Rock") or \ (player_move == "Scissors" and computer_move == "Paper"): st.session_state.playerWin+=1 return "You win!" else: st.session_state.computerWin+=1 return "You lose!" # Streamlit app st.markdown(""" """, unsafe_allow_html=True) st.title("Rock, Paper, Scissors") st.write("Choose your move:") # Create three horizontal buttons col1, col2, col3 = st.columns(3) moveEmojis = {"Rock": "✊", "Paper":"✋", "Scissors": "✌️"} with col1: if st.button("Rock ✊"): player_move = "Rock" with col2: if st.button("Paper ✋"): player_move = "Paper" with col3: if st.button("Scissors✌️"): player_move = "Scissors" # Ensure player_move is defined if 'count' not in st.session_state: st.session_state.count = 0 if 'playerWin' not in st.session_state: st.session_state.playerWin = 0 if 'computerWin' not in st.session_state: st.session_state.computerWin = 0 if 'player_move' not in st.session_state: st.session_state.player_move = None # Assign player move to session state if a move is made if 'player_move' in locals(): st.session_state.player_move = player_move if "chat" not in st.session_state: st.session_state.chat = model.start_chat(history = [ { "role": 'user', "parts": 'You are playing a random rock paper scissors game. For rock will say "Rock", for paper will say "Paper" and for scissors will say "Scissors". Pick a random word out of three and reply in single word once I do my move.' }, { "role": 'model', "parts": 'Alright, let us play a random Rock-Paper-Scissors game. Make your first move!' } ]) # If a move is selected, randomly choose a move for the computer and determine the result if st.session_state.player_move: st.session_state.count = st.session_state.count+1 player_move = st.session_state.player_move response = st.session_state.chat.send_message(player_move) computer_move = response.text # Display player and computer moves col1, col2 = st.columns(2) with col1: st.write("Your move:") st.subheader("{}: {}".format(player_move, moveEmojis[player_move])) with col2: st.write("Computer's move:") st.subheader("{}: {}".format(computer_move, moveEmojis[computer_move])) # Display result result = determine_winner(player_move, computer_move) st.write("Result:") st.subheader(result) if st.session_state.count == 3: st.session_state.count = 0 if st.session_state.computerWin > st.session_state.playerWin: st.write("Best of Three result: Sorry You lose!") else: st.write("Best of Three result: Yayy you win !") st.session_state.computerWin = 0 st.session_state.playerWin = 0