Spaces:
Sleeping
Sleeping
| 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() | |