Rida-Zehra commited on
Commit
26998d9
ยท
verified ยท
1 Parent(s): 52588de

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +174 -41
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
- st.markdown(f"### โญ Score: `{st.session_state.score}`")
 
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 to play:", games)
24
 
 
25
  if selected_game == "Rock Paper Scissors":
26
- st.subheader("Rock Paper Scissors")
27
- user_choice = st.radio("Your move:", ["Rock", "Paper", "Scissors"])
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
- elif selected_game == "Riddle Me This":
42
- st.subheader("๐Ÿง  Riddle Me This")
43
- riddles = {
44
- "What has to be broken before you can use it?": "egg",
45
- "Iโ€™m tall when Iโ€™m young, and Iโ€™m short when Iโ€™m old. What am I?": "candle",
46
- "What month has 28 days?": "all"
47
- }
48
- question, answer = random.choice(list(riddles.items()))
49
- st.write(question)
50
- user_input = st.text_input("Your answer:")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  if st.button("Check Answer"):
52
- if user_input.lower().strip() == answer:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  st.success("Correct! +1 point")
54
  st.session_state.score += 1
55
  else:
56
- st.error(f"Incorrect. The answer was: {answer}")
57
-
58
- elif selected_game == "Number Memory":
59
- st.subheader("๐Ÿ”ข Number Memory")
60
- if 'memory_number' not in st.session_state:
61
- st.session_state.memory_number = str(random.randint(1000, 9999))
62
- st.session_state.memory_phase = 'show'
63
-
64
- if st.session_state.memory_phase == 'show':
65
- st.write(f"Memorize this number: **{st.session_state.memory_number}**")
66
- if st.button("I memorized it"):
67
- st.session_state.memory_phase = 'guess'
68
- st.experimental_rerun()
69
-
70
- elif st.session_state.memory_phase == 'guess':
71
- guess = st.text_input("Enter the number you memorized")
72
- if st.button("Check"):
73
- if guess == st.session_state.memory_number:
74
- st.success("Correct! +1 point")
75
- st.session_state.score += 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  else:
77
- st.error(f"Wrong! It was {st.session_state.memory_number}")
78
- del st.session_state.memory_number
79
- del st.session_state.memory_phase
 
 
 
 
 
 
 
 
 
 
 
 
 
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