Spaces:
Sleeping
Sleeping
Dua Rajper commited on
Create app.py
Browse files
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()
|