پایتون زبانی قدرتمند است که به راحتی میتوان به کمک آن بازی سازی نیز انجام داد. در این مقاله ما قصد داریم یکی از بازیهای معروف یا همان بازی دوز (tic tac toe) را به شما آموزش دهیم. در آموزش ساخت بازی دوز با پایتون ما از کتابخانه tkinter استفاده کردهایم و بازی دوز را به کمک این کتابخانه ساختهایم.
البته که نیاز است برای ساخت بازی دوز با پایتون کمی پیش زمینه از برنامه نویسی پایتون داشته باشید. و اگر این پیش نیازها را داشته باشید به راحتی به کمک این مقاله میتوانید اولین بازی گرافیکی خود را بسازید.
کودکان و نوجوانان بیشتر تفریحاتی که در اوقات فراغت خود دارند بازی کردن است. از این رو ساخت بازی برای آن ها بسیار جذاب است و وقتی بدانند که خودشان می توانند بازی هایی که به آن علاقه دارند را بسازند، قطعا از آن استقبال می کنند. کودکان شما دز دوره پایتون کودکان و نوجوانان می توانند خودشان دست به کار شوند و هر بازی کخواهند بسازند. دوز یک بازی قدیمی است که از 9 مربع تشکیل شدهاست و دو بازیکن دارد که یکی با علامت O و دیگری با علامت X مشخص شدهاند که اگر هرکدام از بازیکنها بتوانند سهتا از علامتهایشان را به صورت عمودی یا افقی یا ضربدری کنار هم بچینند میتوانند برنده بازی باشند. برای ساخت بازی دوز با پایتون ما باید مواردی که در بالا گفته شد را برنامهریزی کنیم. اما در ابتدا نیاز است که ظاهر برنامه را به درستی طراحی نماییم.
بیشتر بخوانید: ساخت بازی با پایتون
در ساخت بازی دوز با پایتون باید به کمک 9 button ظاهر را طراحی نمودهایم. برای اینکه برنامه ظاهر زیر را داشته باشد نیاز است تا کدهای زیر را بنویسیم
from tkinter import *
from tkinter import messagebox
turn=1
root=Tk()
bt1=Button(root,text="",width=25,height=8,command=lambda:click(1))
bt2=Button(root,text="",width=25,height=8,command=lambda:click(2))
bt3=Button(root,text="",width=25,height=8,command=lambda:click(3))
bt4=Button(root,text="",width=25,height=8,command=lambda:click(4))
bt5=Button(root,text="",width=25,height=8,command=lambda:click(5))
bt6=Button(root,text="",width=25,height=8,command=lambda:click(6))
bt7=Button(root,text="",width=25,height=8,command=lambda:click(7))
bt8=Button(root,text="",width=25,height=8,command=lambda:click(8))
bt9=Button(root,text="",width=25,height=8,command=lambda:click(9))
bt1.grid(row=0,column=0)
bt2.grid(row=0,column=1)
bt3.grid(row=0,column=2)
bt4.grid(row=1,column=0)
bt5.grid(row=1,column=1)
bt6.grid(row=1,column=2)
bt7.grid(row=2,column=0)
bt8.grid(row=2,column=1)
bt9.grid(row=2,column=2)
root.mainloop()
همانطور که مشخص است با فشردن هر button تابع click اجرا میشود و یک ورودی را به خود میگیرد و این ورودی درواقع شماره جایگاهی است که قرار است بازیکنی که نوبت اوست مهره خود را بچیند.
حال به سراغ تابع click میرویم.
def click(a):
global turn
if a==1 and turn==1:
bt1.config(text="X")
bt1.config(bg="blue")
checkwin()
elif a==1 and turn==2:
bt1.config(text="O")
bt1.config(bg="red")
checkwin()
elif a==2 and turn==1:
bt2.config(text="X")
bt2.config(bg="blue")
checkwin()
elif a==2 and turn==2:
bt2.config(text="O")
bt2.config(bg="red")
checkwin()
elif a==3 and turn==1:
bt3.config(text="X")
bt3.config(bg="blue")
checkwin()
elif a==3 and turn==2:
bt3.config(text="O")
bt3.config(bg="red")
checkwin()
elif a==4 and turn==1:
bt4.config(text="X")
bt4.config(bg="blue")
checkwin()
elif a==4 and turn==2:
bt4.config(text="O")
bt4.config(bg="red")
checkwin()
elif a==5 and turn==1:
bt5.config(text="X")
bt5.config(bg="blue")
checkwin()
elif a==5 and turn==2:
bt5.config(text="O")
bt5.config(bg="red")
checkwin()
elif a==6 and turn==1:
bt6.config(text="X")
bt6.config(bg="blue")
checkwin()
elif a==6 and turn==2:
bt6.config(text="O")
bt6.config(bg="red")
checkwin()
elif a==7 and turn==1:
bt7.config(text="X")
bt7.config(bg="blue")
checkwin()
elif a==7 and turn==2:
bt7.config(text="O")
bt7.config(bg="red")
checkwin()
elif a==8 and turn==1:
bt8.config(text="X")
bt8.config(bg="blue")
checkwin()
elif a==8 and turn==2:
bt8.config(text="O")
bt8.config(bg="red")
checkwin()
elif a==9 and turn==1:
bt9.config(text="X")
bt9.config(bg="blue")
checkwin()
elif a==9 and turn==2:
bt9.config(text="O")
bt9.config(bg="red")
checkwin()
if turn==1:
turn=2
else:
turn=1
در ساخت بازی دوز با پایتون با کلیک به روی رنگ هر دکمه عوض میشود و علامت بازیکنی که نوبت اوست در روی دکمه نمایان میشود.
خروجی: بعد از یک دور بازی کردن بازیکن اول و بازیکن دوم به صورت زیر است اگر بازیکن اول روی 3 کلیک کرده باشد و بازیکن دوم روی 5
همانطور که در کد بالا دیدید تابع check win فراخوانی شده است تا چک کند آیا بازی تمام شدهاست و بازیکنی برنده شدهاست یا خیر.
بیشتر بخوانید: ساخت بازی 2048 با پایتون
در ساخت بازی دوز با پایتون در صورتی که هر بازیکن بتواند به صورت افقی یا عمودی یا ضربدری دکمهها را کلیک کند و به رنگ خودش درآورد برنده است.
برای این کار در زبان برنامه نویسی پایتون کد تابع checkwin را به صورت زیر مینویسیم.
def checkwin():
win=0
if turn==1:
if bt1["text"]==bt2["text"]==bt3["text"]=="X":
win=1
elif bt4["text"]==bt5["text"]==bt6["text"]=="X":
win=1
elif bt7["text"]==bt8["text"]==bt9["text"]=="X":
win=1
elif bt1["text"]==bt4["text"]==bt7["text"]=="X":
win=1
elif bt2["text"]==bt5["text"]==bt8["text"]=="X":
win=1
elif bt3["text"]==bt6["text"]==bt9["text"]=="X":
win=1
elif bt1["text"]==bt5["text"]==bt9["text"]=="X":
win=1
elif bt3["text"]==bt5["text"]==bt7["text"]=="X":
win=1
elif turn==2:
if bt1["text"]==bt2["text"]==bt3["text"]=="O":
win=2
elif bt4["text"]==bt5["text"]==bt6["text"]=="O":
win=2
elif bt7["text"]==bt8["text"]==bt9["text"]=="O":
win=2
elif bt1["text"]==bt4["text"]==bt7["text"]=="O":
win=2
elif bt2["text"]==bt5["text"]==bt8["text"]=="O":
win=2
elif bt3["text"]==bt6["text"]==bt9["text"]=="O":
win=2
elif bt1["text"]==bt5["text"]==bt9["text"]=="O":
win=2
elif bt3["text"]==bt5["text"]==bt7["text"]=="O":
win=2
if win==1:
messagebox.showinfo("End","Blue Win")
root.destroy()
elif win==2:
messagebox.showinfo("End","Red Win")
root.destroy()
سخن پایانی
همانطور که در بالا دیدید برای ساخت بازی دوز با پایتون به راحتی و به کمک چند تابع و به کمک کتابخانه tkinter توانستیم تا یک بازی طراحی نماییم. یادگیری برنامه نویسی بسیار شیرین و کاربردی است و شما می توانید به کمک آنچه آموختهاید آنچه در ذهن دارید را پیادهسازی نمایید.
برای آموزش ساخت بازی دوز با پایتون و یا آموزش ساخت بازیهای دیگر در پایتون تنها کافیست که سعی کنید برنامه نویسی را بیاموزید و بتوانید بازیها و آنچه در ذهن دارید را پیاده سازی نمایید.
پل استار یک موسسه آموزشی شتابدهی استعداد است که در حوزه آموزش برنامه نویسی برای کودکان و نوجوانان فعالیت میکند. کودکان و نوجوانان میتوانند با شرکت در کلاسهای برنامه نویسی پل استار آموزش پایتون مقدماتی را به صورت اصولی بیاموزند.