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()