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