import tkinter as tk
from tkinter import messagebox
# إعداد النافذة
root = tk.Tk()
root.title("لعبة X-O")
root.resizable(False, False)
# المتغيرات الأساسية
player = "X"
buttons = [[None for _ in range(3)] for _ in range(3)]
# دالة التحقق من الفوز
def check_winner():
for row in buttons:
if row[0]["text"] == row[1]["text"] == row[2]["text"] != "":
return True
for col in range(3):
if buttons[0][col]["text"] == buttons[1][col]["text"] == buttons[2][col]["text"] != "":
return True
if buttons[0][0]["text"] == buttons[1][1]["text"] == buttons[2][2]["text"] != "":
return True
if buttons[0][2]["text"] == buttons[1][1]["text"] == buttons[2][0]["text"] != "":
return True
return False
# دالة التحقق من التعادل
def check_draw():
for row in buttons:
for btn in row:
if btn["text"] == "":
return False
return True
# عند الضغط على الزر
def on_click(x, y):
global player
if buttons[x][y]["text"] == "":
buttons[x][y]["text"] = player
if check_winner():
messagebox.showinfo("انتهت اللعبة", f"اللاعب {player} فاز!")
reset_game()
elif check_draw():
messagebox.showinfo("انتهت اللعبة", "تعادل!")
reset_game()
else:
player = "O" if player == "X" else "X"
# دالة إعادة تعيين اللعبة
def reset_game():
global player
player = "X"
for row in buttons:
for btn in row:
btn["text"] = ""
# بناء واجهة اللعبة
for i in range(3):
for j in range(3):
btn = tk.Button(root, text="", font=('Helvetica', 32), width=5, height=2,
command=lambda x=i, y=j: on_click(x, y))
btn.grid(row=i, column=j)
buttons[i][j] = btn
root.mainloop()