import streamlit as st from streamlit_lottie import st_lottie import random import requests import time from datetime import datetime st.set_page_config(page_title="đŽ Ultimate Mini Game Arcade", layout="centered") # Load Lottie animation def load_lottieurl(url): r = requests.get(url) if r.status_code == 200: return r.json() return None lottie_gamepad = load_lottieurl("https://lottie.host/02f43b1d-15c7-4055-a02d-bbfb25d9b5f6/KUzEMZuOE4.json") if lottie_gamepad: st_lottie(lottie_gamepad, height=200) st.title("đŽ Ultimate Mini Game Arcade") st.caption("Fun games in a beautiful interface â¨") st.markdown("---") games = [ "Rock Paper Scissors", "Guess the Number", "Word Scramble", "Emoji Quiz", "Hangman", "Math Quiz", "Quick Typing", "Emoji Memory Match", "Tic Tac Toe" ] selected_game = st.selectbox("đšī¸ Choose a game:", games) st.markdown("---") # Games def rock_paper_scissors(): st.subheader("đǍ Rock Paper Scissors") player = st.radio("Your move:", ["Rock", "Paper", "Scissors"], horizontal=True) if st.button("Play!"): computer = random.choice(["Rock", "Paper", "Scissors"]) st.write(f"Computer chose: **{computer}**") if player == computer: st.info("It's a draw!") elif (player == "Rock" and computer == "Scissors") or \ (player == "Paper" and computer == "Rock") or \ (player == "Scissors" and computer == "Paper"): st.success("You win!") else: st.error("You lose!") def guess_the_number(): st.subheader("đĸ Guess the Number") if "target_number" not in st.session_state: st.session_state.target_number = random.randint(1, 20) st.session_state.attempts_left = 5 guess = st.number_input("Enter a guess (1-20):", min_value=1, max_value=20, step=1) col1, col2 = st.columns(2) with col1: if st.button("Guess"): st.session_state.attempts_left -= 1 if guess == st.session_state.target_number: st.success("đ Correct!") del st.session_state.target_number elif st.session_state.attempts_left == 0: st.error(f"đĸ Out of attempts! The number was {st.session_state.target_number}") del st.session_state.target_number elif guess < st.session_state.target_number: st.warning("Too low!") else: st.warning("Too high!") with col2: st.info(f"đ¯ Attempts left: {st.session_state.attempts_left}") def word_scramble(): st.subheader("đĄ Word Scramble") words = ["streamlit", "developer", "python", "banana"] if "scramble_word" not in st.session_state: st.session_state.scramble_word = random.choice(words) st.session_state.scramble_attempts = 3 scrambled = ''.join(random.sample(st.session_state.scramble_word, len(st.session_state.scramble_word))) st.write(f"Unscramble this: **{scrambled}**") answer = st.text_input("Your guess:") col1, col2 = st.columns(2) with col1: if st.button("Check"): if answer.lower() == st.session_state.scramble_word: st.success("Correct!") del st.session_state.scramble_word else: st.session_state.scramble_attempts -= 1 if st.session_state.scramble_attempts <= 0: st.error(f"Out of tries! Word was **{st.session_state.scramble_word}**") del st.session_state.scramble_word else: st.warning("Try again!") with col2: st.info(f"đ Tries left: {st.session_state.scramble_attempts}") def emoji_quiz(): st.subheader("đ Emoji Quiz") quiz = { "đđđĨ¤": "Fast Food", "đļđą": "Pets", "đâī¸": "Travel", "âŊđ": "Sports" } if "emoji_question" not in st.session_state: st.session_state.emoji_question, st.session_state.emoji_answer = random.choice(list(quiz.items())) st.write(f"What does this mean? {st.session_state.emoji_question}") guess = st.text_input("Your answer:") if st.button("Check Answer"): if guess.strip().lower() == st.session_state.emoji_answer.lower(): st.success("Correct!") del st.session_state.emoji_question del st.session_state.emoji_answer else: st.error("Nope!") def hangman(): st.subheader("đģ Hangman") words = ["pen", "sun", "dog", "python"] if "hangman_word" not in st.session_state: st.session_state.hangman_word = random.choice(words) st.session_state.hangman_tries = 5 guess = st.text_input("Guess the word:") col1, col2 = st.columns(2) with col1: if st.button("Submit"): st.session_state.hangman_tries -= 1 if guess.lower() == st.session_state.hangman_word: st.success("Correct!") del st.session_state.hangman_word elif st.session_state.hangman_tries <= 0: st.error(f"Game over! Word was {st.session_state.hangman_word}") del st.session_state.hangman_word else: st.warning(f"Incorrect!") with col2: st.info(f"Tries left: {st.session_state.hangman_tries}") def math_quiz(): st.subheader("â Math Quiz") if "a" not in st.session_state: st.session_state.a = random.randint(1, 15) st.session_state.b = random.randint(1, 15) st.write(f"What is {st.session_state.a} + {st.session_state.b}?") ans = st.number_input("Your answer:", step=1) if st.button("Submit"): if ans == st.session_state.a + st.session_state.b: st.success("Correct!") else: st.error(f"Wrong! Answer is {st.session_state.a + st.session_state.b}") del st.session_state.a del st.session_state.b def quick_typing(): st.subheader("â¨ī¸ Quick Typing") words = ["keyboard", "streamlit", "python", "arcade"] if "typing_word" not in st.session_state: st.session_state.typing_word = random.choice(words) st.session_state.start_time = time.time() st.info(f"Type this: **{st.session_state.typing_word}**") user = st.text_input("Start typing:") time_passed = time.time() - st.session_state.start_time duration = len(st.session_state.typing_word) * 0.7 st.write(f"âŗ Time used: {int(time_passed)}s / {int(duration)}s") if st.button("Check"): if time_passed > duration: st.error("â° Time exceeded!") elif user == st.session_state.typing_word: st.success("Perfect!") else: st.error("Incorrect!") del st.session_state.typing_word def emoji_memory(): st.subheader("đ§ Emoji Memory Match") emojis = random.sample(["đ", "đ", "đļ", "đ", "đ", "đ"], 4) if "emoji_mem" not in st.session_state: st.session_state.emoji_mem = emojis st.session_state.mem_start = datetime.now() if (datetime.now() - st.session_state.mem_start).seconds < 5: st.info("Memorize these:") st.code(" ".join(st.session_state.emoji_mem)) else: guess = st.text_input("Enter one emoji you remember:") if st.button("Check"): if guess.strip() in st.session_state.emoji_mem: st.success("Correct!") else: st.error(f"Oops! Emojis were: {' '.join(st.session_state.emoji_mem)}") del st.session_state.emoji_mem def tic_tac_toe(): st.subheader("â Tic Tac Toe") st.write("â Coming soon! Placeholder for a playable board.") # Dispatcher if selected_game == "Rock Paper Scissors": rock_paper_scissors() elif selected_game == "Guess the Number": guess_the_number() elif selected_game == "Word Scramble": word_scramble() elif selected_game == "Emoji Quiz": emoji_quiz() elif selected_game == "Hangman": hangman() elif selected_game == "Math Quiz": math_quiz() elif selected_game == "Quick Typing": quick_typing() elif selected_game == "Emoji Memory Match": emoji_memory() elif selected_game == "Tic Tac Toe": tic_tac_toe() st.markdown("---") st.markdown("