Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -3,31 +3,35 @@ import random
|
|
| 3 |
|
| 4 |
st.set_page_config(page_title="Mini Game Arcade ๐ฎ", layout="centered")
|
| 5 |
|
|
|
|
| 6 |
if 'score' not in st.session_state:
|
| 7 |
st.session_state.score = 0
|
| 8 |
|
|
|
|
| 9 |
st.title("๐ฎ Mini Game Arcade")
|
| 10 |
st.markdown("Welcome! Play a game and earn points! ๐ง ๐ก")
|
| 11 |
|
| 12 |
-
|
|
|
|
| 13 |
if st.button("๐ Reset Score"):
|
| 14 |
st.session_state.score = 0
|
| 15 |
st.success("Score has been reset!")
|
| 16 |
|
|
|
|
| 17 |
games = [
|
| 18 |
"Rock Paper Scissors", "Guess the Number", "Word Scramble", "Emoji Quiz",
|
| 19 |
-
"Math Quiz", "Coin Toss", "Color Guess", "Yes or No",
|
| 20 |
-
"Hangman", "Riddle Me This", "Number Memory"
|
| 21 |
]
|
| 22 |
|
| 23 |
-
selected_game = st.selectbox("Choose a game
|
| 24 |
|
|
|
|
| 25 |
if selected_game == "Rock Paper Scissors":
|
| 26 |
-
st.subheader("Rock Paper Scissors")
|
| 27 |
-
user_choice = st.radio("Your
|
| 28 |
if st.button("Play"):
|
| 29 |
computer = random.choice(["Rock", "Paper", "Scissors"])
|
| 30 |
-
st.write(f"Computer chose: {computer}")
|
| 31 |
if user_choice == computer:
|
| 32 |
st.info("It's a tie!")
|
| 33 |
elif (user_choice == "Rock" and computer == "Scissors") or \
|
|
@@ -38,43 +42,172 @@ if selected_game == "Rock Paper Scissors":
|
|
| 38 |
else:
|
| 39 |
st.error("You lose!")
|
| 40 |
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 51 |
if st.button("Check Answer"):
|
| 52 |
-
if
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 53 |
st.success("Correct! +1 point")
|
| 54 |
st.session_state.score += 1
|
| 55 |
else:
|
| 56 |
-
st.
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
st.
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 76 |
else:
|
| 77 |
-
st.
|
| 78 |
-
|
| 79 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 80 |
|
|
|
|
| 3 |
|
| 4 |
st.set_page_config(page_title="Mini Game Arcade ๐ฎ", layout="centered")
|
| 5 |
|
| 6 |
+
# --- Initialize Score ---
|
| 7 |
if 'score' not in st.session_state:
|
| 8 |
st.session_state.score = 0
|
| 9 |
|
| 10 |
+
# --- Header ---
|
| 11 |
st.title("๐ฎ Mini Game Arcade")
|
| 12 |
st.markdown("Welcome! Play a game and earn points! ๐ง ๐ก")
|
| 13 |
|
| 14 |
+
# --- Display Score + Reset Button ---
|
| 15 |
+
st.markdown(f"### โญ Current Score: `{st.session_state.score}`")
|
| 16 |
if st.button("๐ Reset Score"):
|
| 17 |
st.session_state.score = 0
|
| 18 |
st.success("Score has been reset!")
|
| 19 |
|
| 20 |
+
# --- Game Selection ---
|
| 21 |
games = [
|
| 22 |
"Rock Paper Scissors", "Guess the Number", "Word Scramble", "Emoji Quiz",
|
| 23 |
+
"Math Quiz", "Coin Toss", "Color Guess", "Yes or No", "Hangman (Short Word)"
|
|
|
|
| 24 |
]
|
| 25 |
|
| 26 |
+
selected_game = st.selectbox("๐ฒ Choose a game", games)
|
| 27 |
|
| 28 |
+
# --- ROCK PAPER SCISSORS ---
|
| 29 |
if selected_game == "Rock Paper Scissors":
|
| 30 |
+
st.subheader("โ๐โ Rock Paper Scissors")
|
| 31 |
+
user_choice = st.radio("Your Move:", ["Rock", "Paper", "Scissors"])
|
| 32 |
if st.button("Play"):
|
| 33 |
computer = random.choice(["Rock", "Paper", "Scissors"])
|
| 34 |
+
st.write(f"๐ค Computer chose: {computer}")
|
| 35 |
if user_choice == computer:
|
| 36 |
st.info("It's a tie!")
|
| 37 |
elif (user_choice == "Rock" and computer == "Scissors") or \
|
|
|
|
| 42 |
else:
|
| 43 |
st.error("You lose!")
|
| 44 |
|
| 45 |
+
# --- GUESS THE NUMBER ---
|
| 46 |
+
elif selected_game == "Guess the Number":
|
| 47 |
+
st.subheader("๐ข Guess the Number")
|
| 48 |
+
number = random.randint(1, 20)
|
| 49 |
+
guess = st.number_input("Guess a number between 1 and 20", 1, 20)
|
| 50 |
+
if st.button("Submit Guess"):
|
| 51 |
+
if guess == number:
|
| 52 |
+
st.success("๐ Correct! +1 point")
|
| 53 |
+
st.session_state.score += 1
|
| 54 |
+
elif guess < number:
|
| 55 |
+
st.warning("Too low!")
|
| 56 |
+
else:
|
| 57 |
+
st.warning("Too high!")
|
| 58 |
+
st.caption(f"The number was: {number}")
|
| 59 |
+
|
| 60 |
+
# --- WORD SCRAMBLE ---
|
| 61 |
+
# --- WORD SCRAMBLE ---
|
| 62 |
+
elif selected_game == "Word Scramble":
|
| 63 |
+
st.subheader("๐ค Word Scramble")
|
| 64 |
+
easy_words = ["cake", "fish", "book", "door", "tree", "milk", "rice", "bike", "lamp", "frog", "star", "jump"]
|
| 65 |
+
word = random.choice(easy_words)
|
| 66 |
+
scrambled = ''.join(random.sample(word, len(word)))
|
| 67 |
+
st.write(f"Unscramble this word: `{scrambled}`")
|
| 68 |
+
answer = st.text_input("Your Guess")
|
| 69 |
if st.button("Check Answer"):
|
| 70 |
+
if answer.lower() == word:
|
| 71 |
+
st.success("Correct! +1 point")
|
| 72 |
+
st.session_state.score += 1
|
| 73 |
+
else:
|
| 74 |
+
st.error(f"Wrong. It was `{word}`.")
|
| 75 |
+
|
| 76 |
+
# --- EMOJI QUIZ ---
|
| 77 |
+
# --- EMOJI QUIZ ---
|
| 78 |
+
elif selected_game == "Emoji Quiz":
|
| 79 |
+
st.subheader("๐ Emoji Quiz")
|
| 80 |
+
emoji_dict = {
|
| 81 |
+
"๐๐ฑ": "apple",
|
| 82 |
+
"๐๐": "study",
|
| 83 |
+
"๐ฎ๐ง ": "game",
|
| 84 |
+
"๐โค๏ธ": "pizza",
|
| 85 |
+
"๐๐ป": "python",
|
| 86 |
+
"๐๐จ": "drive",
|
| 87 |
+
"๐ง๐ถ": "music",
|
| 88 |
+
"โ๏ธ๐": "travel",
|
| 89 |
+
"๐๐ช": "exercise",
|
| 90 |
+
"๐ถ๐พ": "dog",
|
| 91 |
+
"๐ด๐๏ธ": "sleep",
|
| 92 |
+
"๐๐ง": "shopping",
|
| 93 |
+
"๐ท๐ธ": "camera",
|
| 94 |
+
"๐บ๐ฌ": "movie",
|
| 95 |
+
"๐กโก": "idea",
|
| 96 |
+
"๐ง๏ธโ": "rain",
|
| 97 |
+
"๐๐๏ธ": "summer",
|
| 98 |
+
"๐ ๐จโ๐ฉโ๐งโ๐ฆ": "family",
|
| 99 |
+
"๐๐": "birthday",
|
| 100 |
+
"๐๐ฑ": "call"
|
| 101 |
+
}
|
| 102 |
+
|
| 103 |
+
emoji, correct = random.choice(list(emoji_dict.items()))
|
| 104 |
+
st.write(f"What do these emojis mean? {emoji}")
|
| 105 |
+
user_ans = st.text_input("Your Answer")
|
| 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.session_state.hangman_tries -= 1
|
| 198 |
+
st.error("โ Incorrect letter!")
|
| 199 |
+
|
| 200 |
+
# Check for win/lose
|
| 201 |
+
if "_" not in st.session_state.hangman_display:
|
| 202 |
+
st.success(f"๐ You guessed it! The word was `{st.session_state.hangman_word}`.")
|
| 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"๐ Game Over! The word was `{st.session_state.hangman_word}`.")
|
| 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 |
|