Artificial Intelligence
Please fill the required field.

create a bingo interactive game GUI in tkinter using python code.


Creating a Bingo game GUI using Tkinter in Python is a fun project! Below is an example implementation. In this code, a simple Bingo game with buttons to call numbers and a grid for players to mark their selections is created. 1. First, ensure you have Python installed on your system. 2. You can run the following code in any Python environment that supports Tkinter, such as IDLE or any other Python IDE. Here's the code for a simple Bingo game using Tkinter: ```python import tkinter as tk import random class BingoGame: def __init__(self, master): self.master = master self.master.title("Bingo Game") self.bingo_card = self.generate_bingo_card() self.called_numbers = set() self.create_widgets() def generate_bingo_card(self): numbers = { 'B': random.sample(range(1, 16), 5), 'I': random.sample(range(16, 31), 5), 'N': random.sample(range(31, 46), 4) # One less for the center } numbers['N'].insert(2, "FREE") # Center space numbers['G'] = random.sample(range(46, 61), 5) numbers['O'] = random.sample(range(61, 76), 5) return numbers def create_widgets(self): self.bingo_frame = tk.Frame(self.master) self.bingo_frame.pack() # Create Bingo Card for col, letter in enumerate("BINGO"): tk.Label(self.bingo_frame, text=letter, font=('Arial', 16)).grid(row=0, column=col) for col, letter in enumerate(self.bingo_card): for row, number in enumerate(self.bingo_card[letter]): if number == "FREE": label = tk.Label(self.bingo_frame, text=number, font=('Arial', 16), bg="yellow") else: label = tk.Label(self.bingo_frame, text=number, font=('Arial', 16), bg="white") label.bind("<Button-1>", self.mark_number) label.grid(row=row + 1, column=col, sticky="nsew") # Create called number display self.called_numbers_label = tk.Label(self.master, text="", font=('Arial', 16)) self.called_numbers_label.pack(pady=10) # Create "Call Number" Button self.call_button = tk.Button(self.master, text="Call Number", command=self.call_number, font=('Arial', 16)) self.call_button.pack(pady=10) # Configure grid rows and columns for i in range(6): # 5 numbers + header self.bingo_frame.grid_rowconfigure(i, weight=1) for i in range(5): # 5 columns self.bingo_frame.grid_columnconfigure(i, weight=1) def call_number(self): all_numbers = {n for n in range(1, 76)} available_numbers = all_numbers - self.called_numbers if available_numbers: number = random.choice(list(available_numbers)) self.called_numbers.add(number) self.called_numbers_label.config(text=f"Called Number: {number}") else: self.called_numbers_label.config(text="All numbers have been called!") def mark_number(self, event): label = event.widget number_text = label.cget("text") if number_text != "FREE": number = int(number_text) if number in self.called_numbers: label.config(bg="green") else: tk.messagebox.showinfo("Info", "Number not called yet!") if __name__ == "__main__": root = tk.Tk() game = BingoGame(root) root.mainloop() ``` ### Instructions to Run: 1. Copy the code into a Python file (e.g., `bingo_game.py`). 2. Run the file using Python. 3. A Bingo game GUI will appear. Click on "Call Number" to generate and display called numbers, and click on the Bingo numbers on the card to mark them when they're called. ### Features: - A simple Bingo card layout. - A button to call random Bingo numbers. - An interactive grid to mark numbers that have been called. You can further enhance this game by adding features such as: - A winning condition check. - A reset button to start a new game. - User input for custom Bingo cards. Feel free to modify the code and expand on this basic functionality!