Dua Rajper commited on
Commit
e92436c
·
verified ·
1 Parent(s): 517bfb0

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +63 -0
app.py ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import random
3
+
4
+ # Generate a random Bingo card
5
+ def generate_bingo_card():
6
+ card = {"B": [], "I": [], "N": [], "G": [], "O": []}
7
+ for col, (start, end) in zip(card.keys(), [(1, 15), (16, 30), (31, 45), (46, 60), (61, 75)]):
8
+ card[col] = random.sample(range(start, end + 1), 5)
9
+ card["N"][2] = "FREE" # Center square
10
+ return card
11
+
12
+ # Display the Bingo card
13
+ def display_bingo_card(card):
14
+ st.write("### Your Bingo Card")
15
+ st.write("B | I | N | G | O")
16
+ st.write("---|---|---|---|---")
17
+ for row in range(5):
18
+ row_values = [
19
+ str(card["B"][row]),
20
+ str(card["I"][row]),
21
+ str(card["N"][row]),
22
+ str(card["G"][row]),
23
+ str(card["O"][row]),
24
+ ]
25
+ st.write(" | ".join(row_values))
26
+
27
+ # Main Streamlit App
28
+ def main():
29
+ st.title("Bingo Game")
30
+ st.write("🎉 Welcome to the Bingo Game! 🎉")
31
+ if "bingo_card" not in st.session_state:
32
+ st.session_state.bingo_card = generate_bingo_card()
33
+
34
+ if st.button("Generate New Bingo Card"):
35
+ st.session_state.bingo_card = generate_bingo_card()
36
+
37
+ display_bingo_card(st.session_state.bingo_card)
38
+
39
+ st.write("### Mark Off Numbers")
40
+ marked_number = st.text_input("Enter the number to mark off (1-75):")
41
+ if st.button("Mark Number"):
42
+ if marked_number.isdigit():
43
+ marked_number = int(marked_number)
44
+ if 1 <= marked_number <= 75:
45
+ for col in st.session_state.bingo_card:
46
+ if marked_number in st.session_state.bingo_card[col]:
47
+ st.session_state.bingo_card[col] = [
48
+ "X" if num == marked_number else num
49
+ for num in st.session_state.bingo_card[col]
50
+ ]
51
+ st.success(f"Number {marked_number} marked off!")
52
+ break
53
+ else:
54
+ st.warning(f"Number {marked_number} is not on your card.")
55
+ else:
56
+ st.error("Please enter a number between 1 and 75.")
57
+ else:
58
+ st.error("Invalid input! Please enter a valid number.")
59
+
60
+ display_bingo_card(st.session_state.bingo_card)
61
+
62
+ if __name__ == "__main__":
63
+ main()