Untitled

from tkinter import *

flag = False
def btnClick( btn ):
    global flag
    btn.config( text="O", state="disable") if flag==False else btn.config(text='X', state="disable")
    flag = not flag
    
window = Tk()
window.title("Demo 02")
window.geometry("600x600")

btn_width = 10
btn_height = 5
btn_padx = 5
btn_pady = 5

#01
btn00=Button(window, width=btn_width, height=btn_height,
             font="Arial 20 bold",
             command=lambda:btnClick(btn00))
btn00.grid(row=0,column=0,pady=btn_pady,padx=btn_padx)
#02
btn01=Button(window, width=btn_width, height=btn_height,
             font="Arial 20 bold",
             command=lambda:btnClick(btn01))
btn01.grid(row=0,column=1,pady=btn_pady,padx=btn_padx)
#03
btn02=Button(window, width=btn_width, height=btn_height,
             font="Arial 20 bold",
             command=lambda:btnClick(btn02))
btn02.grid(row=0,column=2,pady=btn_pady,padx=btn_padx)
#04
btn03=Button(window, width=btn_width, height=btn_height,
             font="Arial 20 bold",
             command=lambda:btnClick(btn03))
btn03.grid(row=1,column=0,pady=btn_pady,padx=btn_padx)
#05
btn04=Button(window, width=btn_width, height=btn_height,
             font="Arial 20 bold",
             command=lambda:btnClick(btn04))
btn04.grid(row=1,column=1,pady=btn_pady,padx=btn_padx)
#06
btn05=Button(window, width=btn_width, height=btn_height,
             font="Arial 20 bold",
             command=lambda:btnClick(btn05))
btn05.grid(row=1,column=2,pady=btn_pady,padx=btn_padx)
#07
btn06=Button(window, width=btn_width, height=btn_height,
             font="Arial 20 bold",
             command=lambda:btnClick(btn06))
btn06.grid(row=2,column=0,pady=btn_pady,padx=btn_padx)
#08
btn07=Button(window, width=btn_width, height=btn_height,
             font="Arial 20 bold",
             command=lambda:btnClick(btn07))
btn07.grid(row=2,column=1,pady=btn_pady,padx=btn_padx)
#09
btn08=Button(window, width=btn_width, height=btn_height,
             font="Arial 20 bold",
             command=lambda:btnClick(btn08))
btn08.grid(row=2,column=2,pady=btn_pady,padx=btn_padx)

window.resizable(0, 0)
window.mainloop()

with score board , generated by chat GPT:

from tkinter import *

# Initialize the game
player = "X"
board = [["" for _ in range(3)] for _ in range(3)]
score = {"X": 0, "O": 0}

# Function to switch players
def switch_player():
    global player
    if player == "X":
        player = "O"
    else:
        player = "X"

# Function to update the board when a button is clicked
def update_board(button, row, col):
    global board, player
    button.config(text=player, state="disable")
    board[int(row)][int(col)] = player
    if check_win():
        score[player] += 1
        score_label.config(text=f"Score: X: {score['X']} O: {score['O']}")
        restart_game()
    else:
        switch_player()

# Function to check for a win
def check_win():
    # Check rows
    for row in board:
        if row[0] == row[1] == row[2] != "":
            return True
    # Check columns
    for col in range(3):
        if board[0][col] == board[1][col] == board[2][col] != "":
            return True
    # Check diagonals
    if board[0][0] == board[1][1] == board[2][2] != "":
        return True
    if board[0][2] == board[1][1] == board[2][0] != "":
        return True
    return False

# Function to restart the game
def restart_game():
    global board, player
    for row in range(3):
        for col in range(3):
            button_row[row][col].config(text="", state="normal")
    board = [["" for _ in range(3)] for _ in range(3)]
    player = "X"

# Create the window and widgets
window = Tk()
window.title("Tic Tac Toe")
window.geometry("300x300")

# Create the buttons
button_row = []
for row in range(3):
    button_col = []
    for col in range(3):
        button = Button(window, width=5, height=2, command=lambda row=row, col=col: update_board(button_row[row][col], row, col))
        button.grid(row=row, column=col, padx=5, pady=5)
        button_col.append(button)
    button_row.append(button_col)

# Create the score label
score_label = Label(window, text="Score: X: 0 O: 0")
score_label.grid(row=3, column=0, columnspan=3)

# Start the game
restart_game()

# Run the window
window.mainloop()