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