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