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