تفاصيل العمل

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

بطاقة العمل

اسم المستقل
عدد الإعجابات
0
عدد المشاهدات
10
تاريخ الإضافة