import tkinter as tk
from tkinter import messagebox
# Initialize the main window
root = tk.Tk()
root.title("Tic-Tac-Toe")
root.configure(bg='lightblue') # Set background color
# Variables to store the state of the game
board = [' ' for _ in range(9)]
player = 'X'
scores = {'X': 0, 'O': 0}
# Function to update the button text and board state
def update_board(index, button):
global player
if board[index] == ' ':
board[index] = player
button.config(text=player, fg='blue' if player == 'X' else 'green', bg='white')
if check_win():
messagebox.showinfo("Tic-Tac-Toe", f"Player {player} wins!")
scores[player] += 1
reset_board()
elif ' ' not in board:
messagebox.showinfo("Tic-Tac-Toe", "No winner!")
reset_board()
else:
player = 'O' if player == 'X' else 'X'
# Function to check for a win
def check_win():
win_conditions = [
(0, 1, 2), (3, 4, 5), (6, 7, 8), # Rows
(0, 3, 6), (1, 4, 7), (2, 5, 8), # Columns
(0, 4, 8), (2, 4, 6) # Diagonals
]
for i, j, k in win_conditions:
if board[i] == board[j] == board[k] != ' ':
return True
return False
# Function to reset the board
def reset_board():
global board, player
board = [' ' for _ in range(9)]
player = 'X'
for button in buttons:
button.config(text='', bg='lightgrey')
# Function to show the scores when closing the game
def on_closing():
messagebox.showinfo("Scores", f"Player X: {scores['X']} wins\nPlayer O: {scores['O']} wins")
root.destroy()
# Create buttons for the Tic-Tac-Toe board
buttons = []
for i in range(9):
button = tk.Button(root, text=' ', width=10, height=5, bg='lightgrey',
command=lambda i=i: update_board(i, buttons[i]))
button.grid(row=i//3, column=i%3, padx=5, pady=5) # Add padding for better spacing
buttons.append(button)
# Bind the closing event to the on_closing function
root.protocol("WM_DELETE_WINDOW", on_closing)
# Run the main loop
root.mainloop()
#tikinter | #game | آموزش پایتون
🍓4
🔍 راهنمای #هشتگها برای دسترسی سریعتر به مطالب کانال
برای اینکه راحتتر به مطالب دلخواهتون برسید، از هشتگهای زیر استفاده کنید:
---
### 😂 #طنز
مطالب فان و خندهدار برای فاصله گرفتن از دنیای کدنویسی.
### 🧪 #تست_تایم
تستها و تمرینهایی که باید برای تقویت مهارتهای برنامهنویسی بزنید.
### 📘 #بدانیم
نکات مهم و کاربردی دربارهی برنامهنویسی و پایتون.
### 📚 #بخوانیم
دانستنیها و مقالاتی که پیشنهاد میکنم حتما مطالعه کنید.
### 📖 #معرفی_کتاب / #بوک_تایم
کتابهای پیشنهادی برای یادگیری اصولیتر.
### 🔥 #موتیو_تایم
پستهای انگیزشی و انرژیبخش برای ادامهی مسیر یادگیری.
### 📚 #کتابخانه
کتابخانههایی که در کانال معرفی شدهاند.
### 📃 #برگه_تقلب و #Cheat_Sheet
خلاصه و نکات کلیدی
---
### 🎮 #game
بازی های ساخته شده با پایتون
### 🛣 #roadmap
نقشهراه یادگیری پایتون و مهارتهای لازم.
### 🧩 #project_time
پروژههای تمرینی برای افزایش تجربه و تسلط.
### 📄 #paper
مقالات علمی و تخصصی معرفیشده.
---
### ⚡️ #PythonTricks
میانبرها و ترفندهای کاربردی پایتون.
### ✨ #Pythonmagic
رفتارهای خاص و جالب پایتون که کمتر کسی میداند.
### 🧰 #functools
ابزارها و تکنیکهای مرتبط با توابع.
### 🧱 #codeBites
خلاصهی یک دستور همراه با نمونهکد کوتاه.
### ❗️ #error
خطاهای رایج پایتون و روش رفع آنها.
### 📰 #news
اخبار روز پایتون و دنیای تکنولوژی.
### 🖼 #carousel
پستهای اسلایدری برای آموزش موضوعات مختلف.
---
### 🤖 #AI
هوش مصنوعی
### 📊 #ML
یادگیری ماشین
### 🧠 #DL
یادگیری عمیق (ژرف)
---
## 🔎 جستجوی سریع دستورات و کتابخانهها
هر دستور یا کتابخانهای که لازم دارید کافیست هشتگش را جستجو کنید:
#split
#while
#class
#for
#dict
#list
#opencv
#cv2
#numpy
#matplotlib
#tkinter
و …
---
## 🎯 دورهها و تمرینها
📘 دوره آموزش مقدماتی پایتون
🧪 حل ۳۰ سؤال کاربردی برای تقویت مهارتهای دوره مقدماتی
🎖چالش ۳۰ روزه Python for AI
برای اینکه راحتتر به مطالب دلخواهتون برسید، از هشتگهای زیر استفاده کنید:
---
### 😂 #طنز
مطالب فان و خندهدار برای فاصله گرفتن از دنیای کدنویسی.
### 🧪 #تست_تایم
تستها و تمرینهایی که باید برای تقویت مهارتهای برنامهنویسی بزنید.
### 📘 #بدانیم
نکات مهم و کاربردی دربارهی برنامهنویسی و پایتون.
### 📚 #بخوانیم
دانستنیها و مقالاتی که پیشنهاد میکنم حتما مطالعه کنید.
### 📖 #معرفی_کتاب / #بوک_تایم
کتابهای پیشنهادی برای یادگیری اصولیتر.
### 🔥 #موتیو_تایم
پستهای انگیزشی و انرژیبخش برای ادامهی مسیر یادگیری.
### 📚 #کتابخانه
کتابخانههایی که در کانال معرفی شدهاند.
### 📃 #برگه_تقلب و #Cheat_Sheet
خلاصه و نکات کلیدی
---
### 🎮 #game
بازی های ساخته شده با پایتون
### 🛣 #roadmap
نقشهراه یادگیری پایتون و مهارتهای لازم.
### 🧩 #project_time
پروژههای تمرینی برای افزایش تجربه و تسلط.
### 📄 #paper
مقالات علمی و تخصصی معرفیشده.
---
### ⚡️ #PythonTricks
میانبرها و ترفندهای کاربردی پایتون.
### ✨ #Pythonmagic
رفتارهای خاص و جالب پایتون که کمتر کسی میداند.
### 🧰 #functools
ابزارها و تکنیکهای مرتبط با توابع.
### 🧱 #codeBites
خلاصهی یک دستور همراه با نمونهکد کوتاه.
### ❗️ #error
خطاهای رایج پایتون و روش رفع آنها.
### 📰 #news
اخبار روز پایتون و دنیای تکنولوژی.
### 🖼 #carousel
پستهای اسلایدری برای آموزش موضوعات مختلف.
---
### 🤖 #AI
هوش مصنوعی
### 📊 #ML
یادگیری ماشین
### 🧠 #DL
یادگیری عمیق (ژرف)
---
## 🔎 جستجوی سریع دستورات و کتابخانهها
هر دستور یا کتابخانهای که لازم دارید کافیست هشتگش را جستجو کنید:
#split
#while
#class
#for
#dict
#list
#opencv
#cv2
#numpy
#matplotlib
#tkinter
و …
---
## 🎯 دورهها و تمرینها
📘 دوره آموزش مقدماتی پایتون
🧪 حل ۳۰ سؤال کاربردی برای تقویت مهارتهای دوره مقدماتی
🎖چالش ۳۰ روزه Python for AI
chess_game.py
31.5 KB
♟ بازی شطرنج با پایتون: قوانینی کامل، تجربهای واقعی! 🚀
از حرکتهای دقیق تا کیش/مات و پات، همه چیز در این پروژه به دقت پیادهسازی شده. آماده برای رقابت دو نفره، با کدی ماژولار و قابل توسعه. پروژهای که باهاش میتونی برنامهنویسی پیشرفته رو تجربه کنی!
#بازی | #شطرنج
#game | #chess | @learnpythonicy
از حرکتهای دقیق تا کیش/مات و پات، همه چیز در این پروژه به دقت پیادهسازی شده. آماده برای رقابت دو نفره، با کدی ماژولار و قابل توسعه. پروژهای که باهاش میتونی برنامهنویسی پیشرفته رو تجربه کنی!
#بازی | #شطرنج
#game | #chess | @learnpythonicy