Spaces:
Sleeping
Sleeping
File size: 10,828 Bytes
7f7728a a84332e 7f7728a a84332e a7da305 a84332e a7da305 a84332e a7da305 7f7728a a84332e 52588de a84332e 26998d9 a84332e 26998d9 a84332e 26998d9 a7da305 a84332e |
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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 |
import streamlit as st
import random
import time
st.set_page_config(page_title="Mini Game Arcade ๐ฎ", layout="centered")
# --- Score Initialization ---
if "score" not in st.session_state:
st.session_state.score = 0
# --- Selected Game State ---
if "selected_game" not in st.session_state:
st.session_state.selected_game = None
# --- Game List ---
game_list = [
"Rock Paper Scissors", "Guess the Number", "Word Scramble", "Emoji Quiz",
"Math Quiz", "Coin Toss", "Color Guess", "Yes or No", "Hangman (Short Word)",
"Odd or Even", "Fast Tap Challenge"
]
# --- App Header ---
st.title("๐ฎ Mini Game Arcade")
st.markdown("Welcome! Choose a game below and earn points! ๐ง โจ")
st.markdown(f"### โญ Score: `{st.session_state.score}`")
if st.button("๐ Reset Score"):
st.session_state.score = 0
st.success("Score has been reset!")
# --- Game Selector (Cards Style) ---
cols = st.columns(3)
for i, game in enumerate(game_list):
if cols[i % 3].button(game):
st.session_state.selected_game = game
st.divider()
# --- Run Selected Game ---
selected_game = st.session_state.selected_game
if selected_game:
# --- Rock Paper Scissors ---
if selected_game == "Rock Paper Scissors":
st.subheader("โ๐โ Rock Paper Scissors")
user_choice = st.radio("Your Move:", ["Rock", "Paper", "Scissors"])
if st.button("Play"):
computer = random.choice(["Rock", "Paper", "Scissors"])
st.write(f"๐ค Computer chose: {computer}")
if user_choice == computer:
st.info("It's a tie!")
elif (user_choice == "Rock" and computer == "Scissors") or \
(user_choice == "Paper" and computer == "Rock") or \
(user_choice == "Scissors" and computer == "Paper"):
st.success("You win! +1 point")
st.session_state.score += 1
else:
st.error("You lose!")
# --- Guess the Number ---
elif selected_game == "Guess the Number":
st.subheader("๐ข Guess the Number")
if "guess_number" not in st.session_state:
st.session_state.guess_number = random.randint(1, 20)
guess = st.number_input("Guess a number between 1 and 20", 1, 20)
if st.button("Submit Guess"):
target = st.session_state.guess_number
if guess == target:
st.success("๐ Correct! +1 point")
st.session_state.score += 1
del st.session_state.guess_number
elif guess < target:
st.warning("Too low!")
else:
st.warning("Too high!")
st.caption(f"The number was: {target}")
# --- Word Scramble ---
elif selected_game == "Word Scramble":
st.subheader("๐ค Word Scramble")
words = ["cake", "fish", "book", "door", "tree", "milk", "bike", "lamp", "frog", "star"]
if "scramble_word" not in st.session_state:
word = random.choice(words)
scrambled = ''.join(random.sample(word, len(word)))
st.session_state.scramble_word = word
st.session_state.scrambled = scrambled
st.write(f"Unscramble this: `{st.session_state.scrambled}`")
answer = st.text_input("Your Guess")
if st.button("Check Answer"):
if answer.lower() == st.session_state.scramble_word:
st.success("Correct! +1 point")
st.session_state.score += 1
del st.session_state.scramble_word
del st.session_state.scrambled
else:
st.error(f"Wrong! It was `{st.session_state.scramble_word}`")
# --- Emoji Quiz ---
elif selected_game == "Emoji Quiz":
st.subheader("๐ Emoji Quiz")
emoji_dict = {
"๐๐ฑ": "apple", "๐๐": "study", "๐ฎ๐ง ": "game", "๐โค๏ธ": "pizza", "๐๐ป": "python",
"๐๐จ": "drive", "๐ง๐ถ": "music", "โ๏ธ๐": "travel", "๐๐ช": "exercise", "๐ถ๐พ": "dog",
"๐ด๐๏ธ": "sleep", "๐๐ง": "shopping", "๐ท๐ธ": "camera", "๐บ๐ฌ": "movie", "๐กโก": "idea",
"๐ง๏ธโ": "rain", "๐๐๏ธ": "summer", "๐ ๐จโ๐ฉโ๐งโ๐ฆ": "family", "๐๐": "birthday", "๐๐ฑ": "call"
}
if "emoji_pair" not in st.session_state:
emoji, word = random.choice(list(emoji_dict.items()))
st.session_state.emoji_pair = (emoji, word)
emoji, correct = st.session_state.emoji_pair
st.write(f"What do these emojis mean? {emoji}")
user_ans = st.text_input("Your Answer")
if st.button("Check"):
if user_ans.lower().strip() == correct:
st.success("You're right! +1 point")
st.session_state.score += 1
else:
st.error(f"Oops, it was: `{correct}`")
del st.session_state.emoji_pair
# --- Math Quiz ---
elif selected_game == "Math Quiz":
st.subheader("โ Math Quiz")
if "math_pair" not in st.session_state:
a, b = random.randint(1, 10), random.randint(1, 10)
st.session_state.math_pair = (a, b)
a, b = st.session_state.math_pair
st.write(f"What is {a} + {b}?")
user_ans = st.number_input("Your Answer", 0)
if st.button("Submit"):
if user_ans == a + b:
st.success("Correct! +1 point")
st.session_state.score += 1
else:
st.error(f"Wrong! Answer: {a + b}")
del st.session_state.math_pair
# --- Coin Toss ---
elif selected_game == "Coin Toss":
st.subheader("๐ช Coin Toss")
user_call = st.radio("Call it:", ["Heads", "Tails"])
if st.button("Flip"):
result = random.choice(["Heads", "Tails"])
st.write(f"๐ช It's {result}!")
if user_call == result:
st.success("You guessed it! +1 point")
st.session_state.score += 1
else:
st.error("Try again!")
# --- Color Guess ---
elif selected_game == "Color Guess":
st.subheader("๐จ Color Guess")
colors = ["Red", "Blue", "Green", "Yellow", "Purple"]
if "color_ans" not in st.session_state:
st.session_state.color_ans = random.choice(colors)
guess = st.selectbox("Guess the color", colors)
if st.button("Check Color"):
if guess == st.session_state.color_ans:
st.success("Correct! +1 point")
st.session_state.score += 1
else:
st.warning(f"Nope! It was {st.session_state.color_ans}")
del st.session_state.color_ans
# --- Yes or No ---
elif selected_game == "Yes or No":
st.subheader("โ Yes or No")
question = st.text_input("Ask any yes/no question")
if st.button("Answer"):
response = random.choice(["Yes", "No", "Maybe", "Definitely not", "Probably yes"])
st.write(f"๐ง Answer: {response}")
st.info("This game doesn't affect your score.")
# --- Hangman ---
elif selected_game == "Hangman (Short Word)":
st.subheader("๐ฏ Hangman")
if 'hangman_word' not in st.session_state:
word = random.choice([
"fish", "milk", "tree", "door", "cake", "book", "frog", "rain",
"bike", "jump", "lamp", "home", "ring", "desk", "lion", "wolf"
])
st.session_state.hangman_word = word
st.session_state.hangman_display = ["_"] * len(word)
st.session_state.hangman_tries = 6
st.session_state.hangman_guessed = []
st.write(" ".join(st.session_state.hangman_display))
st.write(f"๐น๏ธ Tries Left: `{st.session_state.hangman_tries}`")
st.write(f"๐ค Letters guessed: `{', '.join(st.session_state.hangman_guessed)}`")
letter = st.text_input("Guess a letter", max_chars=1)
if st.button("Submit Letter"):
if not letter or not letter.isalpha():
st.warning("Enter a valid letter.")
elif letter in st.session_state.hangman_guessed:
st.info("Already guessed.")
else:
st.session_state.hangman_guessed.append(letter)
if letter in st.session_state.hangman_word:
for i, l in enumerate(st.session_state.hangman_word):
if l == letter:
st.session_state.hangman_display[i] = letter
st.success("Correct letter!")
else:
st.session_state.hangman_tries -= 1
st.error("Wrong letter!")
if "_" not in st.session_state.hangman_display:
st.success(f"You guessed it! Word: `{st.session_state.hangman_word}`")
st.session_state.score += 1
if st.button("Play Again"):
for key in ["hangman_word", "hangman_display", "hangman_tries", "hangman_guessed"]:
del st.session_state[key]
elif st.session_state.hangman_tries == 0:
st.error(f"Game Over! Word was: `{st.session_state.hangman_word}`")
if st.button("Try Again"):
for key in ["hangman_word", "hangman_display", "hangman_tries", "hangman_guessed"]:
del st.session_state[key]
# --- Odd or Even ---
elif selected_game == "Odd or Even":
st.subheader("๐ข Odd or Even")
if "odd_even_number" not in st.session_state:
st.session_state.odd_even_number = random.randint(1, 100)
num = st.session_state.odd_even_number
guess = st.radio(f"Is {num} odd or even?", ["Odd", "Even"])
if st.button("Check"):
correct = "Even" if num % 2 == 0 else "Odd"
if guess == correct:
st.success("Correct! +1 point")
st.session_state.score += 1
else:
st.error(f"Nope! It's {correct}")
del st.session_state.odd_even_number
# --- Fast Tap Challenge ---
elif selected_game == "Fast Tap Challenge":
st.subheader("โฑ๏ธ Fast Tap Challenge")
if st.button("Start Timer"):
st.session_state.tap_start = time.time()
if st.button("Stop Timer"):
if "tap_start" in st.session_state:
elapsed = time.time() - st.session_state.tap_start
if elapsed < 1.5:
st.success(f"Great! You tapped in {elapsed:.2f}s. +1 point")
st.session_state.score += 1
else:
st.warning(f"Too slow! You took {elapsed:.2f}s.")
del st.session_state.tap_start
|