<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>پست‌های انتشارات &#34;پایتون محض&#34;</title><link>https://virgool.ir/python-mahz/feed</link><description>برنامه نویسی به زبان پایتون ...........</description><language>fa</language><pubDate>2026-11-11 04:18:53</pubDate><image><url>https://files.virgool.ir/upload/publication/34mktnleqqes/kgnruo.png</url><title>&#34;پایتون محض&#34;</title><link>https://virgool.ir/python-mahz</link></image><item><title>ساخت برنامه تبدیل متن به صوت با پایتون قسمت اول</title><link>https://virgool.ir/python-mahz/ساخت-برنامه-تبدیل-متن-به-صوت-با-پایتون-قسمت-اول-wl66wykyyafm</link><description>تبدیل متن به صدا با پایتوندر این پست قصد دارم برنامه بنویسم که از کاربر متن بگیره و به صوت تبدیل کنه . اول برنامه رو مینویسیم و توی اینترنال اجراش می کنیم و بعد برنامه رو به شکل گرافیکی در میاریم و به فایل exe  تبدیلش می کنیم تا روی هر کامپیوتری حتی اگر پایتون نصب نباشد اجرا شود .خب برای شروع باید کتابخونه gtts  نصب کنیم، برای اینکار در CMD مینویسیم :pip install gttsحالا یک فایل پایتون با نام دلخواه روی دسکتاپ (desktop) میسازیم و شروع به نوشتن برنامه می کنیم .از کتابخونه gtts به gTTS نیاز داریم . و کتابخونه os هم برای اجرای فایل ایمپورت (import) می کنیم:from gtts import gTTS&#xA;import osاول از همه باید از کابر یک اسم برای فایلی که میسازه بگیره، پس مینویسیم :Filename = input(&#34;Enter File name : &#34;)حالا باید از کاربر یک متن بگیره تا اون رو  به فایل صوتی تبدیل کنه :mytext = input(&#34;Enter text : &#34;)حالا باید زبان خروجی رو از کابر بگیره (زبان فارسی وجود نداره شما می تونید زبان رو روی انگیلیسی قرار دهید یا اینکه از کابر زبان بخواهید تا مثلا بنویسد en یا english)language = input(&#34;Enter language : &#34;)&#xA;if language == &#34;english&#34; or &#34;انگیلیسی&#34;:&#xA;language = &#34;en&#34;خط اول از کاربر یک ورودی میگیره خط دوم کاری میکنه تا اگه کابر به جای en نوشت english یا انگیلیسی خدکار تبدیلش کنه به همون enحالا باید از کاربر ورودی بگیریم که صدا اروم(slow) باشه یا سریع (fast) :slow = input(&#34;fast or slow ? &#34;)&#xA;if slow == &#34;fast&#34;:&#xA;    slow = False&#xA;if slow == &#34;slow&#34;:&#xA;    slow = True&#xA;در کد بالا گفتیم که اگر کاربر گفت سریع (fast) اسلو (slow) برابر باشه با فالس(False) و بر عکس ..حالا باید یک ابجکت بسازیم و سیوش کنیم و اتوماتیک اجرا بشه  :myobj = gTTS(text=mytext, lang=language, slow=slow)&#xA;myobj.save(Filename + &#34;.MP3&#34;)&#xA;os.system(Filename + &#34;.MP3&#34;)خط اول ابجکت با توجه به ورودی های کاربر میسازه .خط دوم با اسم انتخابی کاربر سیوس میکنه .خط سوم اجراش میکنه .و در اخر مینویسیم که برنامه بنویسه تمام (finished) :print(&#34;Finished .............&#34;)خب برنامه تموم شد تو قسمت بعد میریم که تبدیلش کنیم به برنامه گرافیکی و فایل اجرایی ..برنامه ما تا اینجای کار :# start&#xA;&#xA;from gtts import gTTS&#xA;import os&#xA;&#xA;# input&#xA;Filename = input(&#34;Enter File name : &#34;)&#xA;mytext = input(&#34;Enter text : &#34;)&#xA;language = input(&#34;Enter language : &#34;)&#xA;slow = input(&#34;fast or slow ? &#34;)&#xA;&#xA;# input setting&#xA;if language == &#34;english&#34; or &#34;انگیلیسی&#34;:&#xA;    language = &#34;en&#34;&#xA;&#xA;if slow == &#34;fast&#34;:&#xA;    slow = False&#xA;if slow == &#34;slow&#34;:&#xA;    slow = True&#xA;&#xA;# make and save file&#xA;myobj = gTTS(text=mytext, lang=language, slow=slow)&#xA;myobj.save(Filename + &#34;.MP3&#34;)&#xA;os.system(Filename + &#34;.MP3&#34;)&#xA;&#xA;print(&#34;Finished .............&#34;)حالا اگر برنامه رو از توی cmd اجرا کنیم یک اسم و یک متن و زبان و سریع یا کند از ما میگیره و برنامه رو میسازه و اجرا میکنه فقط سعی کنید توی دسکتاپ بزاریدش و از توی محیطی که دارید برنامه رو مینویسید اجراش نکنید !تا قسمت دو ...</description><category>&#34;پایتون محض&#34;</category><author>مصطفی موسی خانی</author><pubDate>Fri, 16 Oct 2020 21:37:14 +0330</pubDate></item><item><title>کامل کردن بازی پایتون قسمت یک</title><link>https://virgool.ir/python-mahz/کامل-کردن-بازی-پایتون-قسمت-یک-iuastr7xuyhg</link><description>در این دوره بازی مار که ساختیم رو کامل می کنیم .اول از همه کتابخونه pyinstaller رو نصب می کنیم :توی cmd مینویسیم :pip install pyinstallerو بعد کتابخونه pygame نصب می کنیم :pip install pygameو بعد کتابخونه guizero نصب می کنیم :pip install guizeroحالا  یک فولدر ایجاد می کنیم . توش فایل main.py که مال بازی مار هست رو  میریزید و یک فایل پایتون جدید هم درست می کنید و اسم اون رو میزارید  start.py .شروع نوشتن برنامه داخل فایل start.py میزارم برای قسمتهای بعد . فعلا می خوام یکم حرف بزم راجب اینکه می خوایم چیکار کنیم ؟!ما می خوایم یک صفحه ورود بسازیم به همراه موسیقی و دکمه start و دکمه خروج و ...از  کتابخونه pygame برای پخش موسیقی پس زمینه استفاده می کنیم و از guizero  برای ساخت منو و در نهایت از pyinstaller برای تبدیل فایل به فایل exe و  قابل اجرا بر روی هر سیستمی چه پایتون نصب باشه چه نباشه .در  ضمن کنسول(ترمینال) هم حذف می کنیم و بهتون اموزش میدم که در نهایت فقط یک  فایل اجرایی و یک فایل موسیقی داشته باشید و یا مانند برنامه های عادی یک  پوشه پر از فایل .تا قسمت دو ....فعلا.</description><category>&#34;پایتون محض&#34;</category><author>مصطفی موسی خانی</author><pubDate>Thu, 15 Oct 2020 21:40:50 +0330</pubDate></item><item><title>ساخت بازی با پایتون قسمت پنجم (اخر)</title><link>https://virgool.ir/python-mahz/ساخت-بازی-با-پایتون-قسمت-پنجم-اخر-pzvysahmfu4f</link><description>تصویر بازی نهاییابتدا قسمت چهار را مطالعه کنید در قسمت قبل برخورد مار با دیوار و خوردن میوه رو تموم کردیم حالا باید اون قسمت هایی که ایجاد میشن رو بچسبونیم به سر ماره . زیر اضافه کردن سگمنت ( add segments) مینویسیم حواتون باشه که نباید داخل (if) خوردن باشه .# move segments&#xA;for index in range(len(segments)-1,0,-1):&#xA;    x = segments[index-1].xcor()&#xA;    y = segments[index-1].ycor()&#xA;    segments[index].goto(x,y)&#xA;&#xA;# move 0 segment&#xA;if len(segments) &gt; 0:&#xA;    x = head.xcor()&#xA;    y = head.ycor()&#xA;    segments[0].goto(x,y)در کد بالا در قسمت اول (move segments) کاری کردیک که سنگمنت ها از اخر به اول به ترتیب شوند : 0,1,2,3 بودند . الان شدند 3,2,1,0 .در قسمت دوم کد (move 0 segment) سگمنت میچسبند به سر مار .حالا اگر برنامه اجرا کنیم هر غذایی که می خوریم یک قسمت به بدن مار اضافه می شود ولی وقتی به دیوار بر خورد کنیم سگمنت ها ( segments) از بین نمی روند !! .برای حل این مشکل در ادامه قسمت اگر به دیوار برخورد کند که من در اصطلاح اون رو در (wall happend) نوشتم مینویسیم :# hide segments&#xA;for segment in segments:&#xA;    segment.goto(1000,1000)&#xA;&#xA;# clear segments&#xA;segments.clear()&#xA;score = 0&#xA;x = random.randint(-290,290)&#xA;y = random.randint(-290,290)&#xA;food.goto(x,y)در قسمت اول کد بالا (hide segments) نوشتیم که سگمنت هارو (segments) ببره به جایی خارج از دید پلیر یعنی (1000,1000) .در قسمت دوم کد (clear segments) گفتیم که سگمنت های داخل لیست پاک کنه و تمتیاز هم صفر کنه و یک ایکس و وای رندوم بسازه وغذارو ببره به اونجا تا جاش عوض بشه .تامام !! حالا اگر برنامه رو اجرا کنیم همه چی درست هستش . کد نهایی ما :# start&#xA;&#xA;import turtle&#xA;import time&#xA;import random&#xA;&#xA;delay = 0.1&#xA;score = 0&#xA;&#xA;# firt setting&#xA;win = turtle.Screen()&#xA;win.title(&#39;Python Game&#39;)&#xA;win.bgcolor(&#39;green&#39;)&#xA;win.setup(width=600, height=600)&#xA;win.tracer(0)&#xA;&#xA;# snake head&#xA;head = turtle.Turtle()&#xA;head.speed(0)&#xA;head.shape(&#39;square&#39;)&#xA;head.color(&#39;white&#39;)&#xA;head.penup()&#xA;head.goto(0,0)&#xA;head.direction = &#39;stop&#39;&#xA;&#xA;# food&#xA;food = turtle.Turtle()&#xA;food.speed(0)&#xA;food.shape(&#39;circle&#39;)&#xA;food.color(&#39;red&#39;)&#xA;food.penup()&#xA;food.goto(0,100)&#xA;&#xA;# segments&#xA;segments = []&#xA;&#xA;# functions&#xA;def goup():&#xA;    head.direction = &#39;up&#39;&#xA;&#xA;def godown():&#xA;    head.direction = &#39;down&#39;&#xA;&#xA;def goright():&#xA;    head.direction = &#39;right&#39;&#xA;&#xA;def goleft():&#xA;    head.direction = &#39;left&#39;&#xA;&#xA;def move():&#xA;    if head.direction == &#39;up&#39;:&#xA;        y = head.ycor()&#xA;        head.sety(y+20)&#xA;&#xA;    if head.direction == &#39;down&#39;:&#xA;        y = head.ycor()&#xA;        head.sety(y-20)&#xA;&#xA;    if head.direction == &#39;right&#39;:&#xA;        x = head.xcor()&#xA;        head.setx(x+20)&#xA;&#xA;    if head.direction == &#39;left&#39;:&#xA;        x = head.xcor()&#xA;        head.setx(x-20)&#xA;&#xA;# bindings&#xA;win.listen()&#xA;win.(goup, &#39;w&#39;)&#xA;win.(godown, &#39;s&#39;)&#xA;win.(goright, &#39;d&#39;)&#xA;win.(goleft, &#39;a&#39;)&#xA;&#xA;while True:&#xA;    win.update()&#xA;&#xA;    # wall happend&#xA;    if head.xcor() &gt; 290 or head.xcor() &lt; -290 or head.ycor() &gt; 290 or head.ycor() &lt; -290:&#xA;        time.sleep(1)&#xA;        print(&#39;GameOver&#39;)&#xA;        head.goto(0,0)&#xA;        head.direction = &#39;stop&#39;&#xA;&#xA;        # hide segments&#xA;        for segment in segments:&#xA;            segment.goto(1000,1000)&#xA;&#xA;        # clear segments&#xA;        segments.clear()&#xA;        score = 0&#xA;        x = random.randint(-290,290)&#xA;        y = random.randint(-290,290)&#xA;        food.goto(x,y)&#xA;&#xA;    # eat happend&#xA;    if head.distance(food) &lt; 20:&#xA;        x = random.randint(-290,290)&#xA;        y = random.randint(-290,290)&#xA;        food.goto(x,y)&#xA;&#xA;        # add segments&#xA;        newsegment = turtle.Turtle()&#xA;        newsegment.speed(0)&#xA;        newsegment.shape(&#39;square&#39;)&#xA;        newsegment.color(&#39;black&#39;)&#xA;        newsegment.penup()&#xA;        segments.append(newsegment)&#xA;        score = score +1&#xA;        print(score)&#xA;&#xA;    # move segments&#xA;    for index in range(len(segments)-1,0,-1):&#xA;        x = segments[index-1].xcor()&#xA;        y = segments[index-1].ycor()&#xA;        segments[index].goto(x,y)&#xA;&#xA;    # move 0 segment&#xA;    if len(segments) &gt; 0:&#xA;        x = head.xcor()&#xA;        y = head.ycor()&#xA;        segments[0].goto(x,y)&#xA;&#xA;    move()&#xA;    time.sleep(delay)&#xA;&#xA;win.mainloop()یادتون نره ویرگول قسمت بایندینگ (bindings) خراب میکنه ، پس اون قسمت رو از روی عکس زیر ویرایش کنید :بایندینگ درستبعدا اموزش گرفتن خروجی exe هم میزارم تا بتونید تو کامپیوتری که پایتون روش نصب نیست هم اجراش کنید .اگر عیبی دیدید یا مشکلی داشتید = کامنتفعلا .# made by MOSTAFA mkl</description><category>&#34;پایتون محض&#34;</category><author>مصطفی موسی خانی</author><pubDate>Thu, 15 Oct 2020 21:00:10 +0330</pubDate></item><item><title>ساخت بازی با پایتون قسمت چهارم</title><link>https://virgool.ir/python-mahz/ساخت-بازی-با-پایتون-قسمت-چهارم-yjapy7amspu6</link><description>بازی نهاییابتدا قسمت سوم رو مشاهده کنید .در قسمت قبل تا بایندینگ ها(bindings)  اومدیم.این قسمت میریم سراغ اینکه وقتی به دیوار برخورد کنه بازی از اول بشه و وقتی میوه رو می خوره میوه محو بشه .برای اینکه وقتی به دیوار برخورد میکنه بازی از اول بشه :اخر کدمون یه حلقه داشتیم برای رفرش شدن صفحه بعد از ()win.update و قبل از ()move مینویسیم :if head.xcor() &gt; 290 or head.xcor() &lt; -290 or head.ycor() &gt; 290 or head.ycor() &lt; -290:&#xA;    time.sleep(1)&#xA;    print(&#39;GameOver&#39;)&#xA;    head.goto(0,0)&#xA;    head.direction = &#39;stop&#39;خط اول داریم میگیم که اگر سر مار 290 به سمت راست یا چپ یا بالا یا پایین رفت بزارش وسط زمین و حرکتشو قطع کن .حالا چرا 290 ؟؟چون اگر صفحتونو مثل من 600 در 600 گرفته باشید، 290 پیکسل از هر طرف دقیقا میشه لبه صفحه .خط دوم هم میگه که یک ثانیه وایسا خط سوم توی ترمینال بنویس game over  خط چهار، سر بیار وسط زمین .خط پنج حرکتشو قطع کن .حالا میریم سراغ اینکه وقتی سر مار به غذا بر خورد کرد غذا محو بشه .زیر همون برخورد سر به دیوار مینویسیم( حواستون باشه این نباید داخل اون ایف (if) قبلیه باشه )  :if head.distance(food) &lt; 20:&#xA;    x = random.randint(-290,290)&#xA;    y = random.randint(-290,290)&#xA;    food.goto(x,y)برای اینکار گفتیم که اگه فاصله سر مار تا غذا کمتر از 20 پیکسل شد :اول یه ایکس و وای جدید با رندوم ایجاد کن (نوشتم بین (-290,290) تا نره بیرون صفحه .بعدشم غذا بره به همون ایکس و وای جدید .شاید بگید چرا وقتی فاصله کمتر از 20 شد ؟؟چون دور غذا تقریبا یه 20 پیکسلی هست و برای همین اینجوری بنویسیم بهتره .حالا میریم سراغ اینکه وقتی به غذا خورد (فاصله با غذا کمتر از 20 پیکسل شد ) یک مربع به بدن مار اضافه بشه .برای اینکار زیر همون اگر فاصله سر تا غذا ...... مینویسیم (به طوری داخل همون (if) باشه ) :newsegment = turtle.Turtle()&#xA;newsegment.speed(0)&#xA;newsegment.shape(&#39;square&#39;)&#xA;newsegment.color(&#39;black&#39;)&#xA;newsegment.penup()&#xA;segments.append(newsegment)&#xA;score = score +1&#xA;print(score)خط اول میگه یک شکل جدید ایجاد کن به اسم نیو سگمنت (newsegment) خط دو . سرعتش هم که میزاریم روی 0.خط سه . شکلش هم مربع خط چهارم . رنگشو مشکی میزاریم تا معلوم باشه .خط پنج .  اضافه می کنیم به لیست سگمنت (segments) که قبلا ایجاد کرده بودیم .حالا برای اینکه امتیاز هم به بازی اضافه کنیم یک score = 0 زیر delay مینویسیم .و توی خط 6 یک امتیاز به کاربر اضافه میشه و امتیاز رو توی اینترنال پرینت میکنه .حالا اگه برنامه رو اجرا کنیم و یک غذا بخوریم یک مربع سیاه وسط صفحه ایجاد میشه . پس حالا باید کاری کنیم تا مربع ها بچسبه به سر ( توی قسمت 5)عکس بازی تا اینجای کاراین هم کد ما تا اینجای کار :# start&#xA;&#xA;import turtle&#xA;import time&#xA;import random&#xA;&#xA;delay = 0.1&#xA;score = 0&#xA;&#xA;# firt setting&#xA;win = turtle.Screen()&#xA;win.title(&#39;Python Game&#39;)&#xA;win.bgcolor(&#39;green&#39;)&#xA;win.setup(width=600, height=600)&#xA;win.tracer(0)&#xA;&#xA;# snake head&#xA;head = turtle.Turtle()&#xA;head.speed(0)&#xA;head.shape(&#39;square&#39;)&#xA;head.color(&#39;white&#39;)&#xA;head.penup()&#xA;head.goto(0,0)&#xA;head.direction = &#39;stop&#39;&#xA;&#xA;# food&#xA;food = turtle.Turtle()&#xA;food.speed(0)&#xA;food.shape(&#39;circle&#39;)&#xA;food.color(&#39;red&#39;)&#xA;food.penup()&#xA;food.goto(0,100)&#xA;&#xA;# segments&#xA;segments = []&#xA;&#xA;# functions&#xA;def goup():&#xA;    head.direction = &#39;up&#39;&#xA;&#xA;def godown():&#xA;    head.direction = &#39;down&#39;&#xA;&#xA;def goright():&#xA;    head.direction = &#39;right&#39;&#xA;&#xA;def goleft():&#xA;    head.direction = &#39;left&#39;&#xA;&#xA;def move():&#xA;    if head.direction == &#39;up&#39;:&#xA;        y = head.ycor()&#xA;        head.sety(y+20)&#xA;&#xA;    if head.direction == &#39;down&#39;:&#xA;        y = head.ycor()&#xA;        head.sety(y-20)&#xA;&#xA;    if head.direction == &#39;right&#39;:&#xA;        x = head.xcor()&#xA;        head.setx(x+20)&#xA;&#xA;    if head.direction == &#39;left&#39;:&#xA;        x = head.xcor()&#xA;        head.setx(x-20)&#xA;&#xA;# bindings&#xA;win.listen()&#xA;win.(goup, &#39;w&#39;)&#xA;win.(godown, &#39;s&#39;)&#xA;win.(goright, &#39;d&#39;)&#xA;win.(goleft, &#39;a&#39;)&#xA;&#xA;while True:&#xA;    win.update()&#xA;&#xA;    # wall happend&#xA;    if head.xcor() &gt; 290 or head.xcor() &lt; -290 or head.ycor() &gt; 290 or head.ycor() &lt; -290:&#xA;        time.sleep(1)&#xA;        print(&#39;GameOver&#39;)&#xA;        head.goto(0,0)&#xA;        head.direction = &#39;stop&#39;&#xA;&#xA;    # eat happend&#xA;    if head.distance(food) &lt; 20:&#xA;        x = random.randint(-290,290)&#xA;        y = random.randint(-290,290)&#xA;        food.goto(x,y)&#xA;&#xA;        # add segments&#xA;        newsegment = turtle.Turtle()&#xA;        newsegment.speed(0)&#xA;        newsegment.shape(&#39;square&#39;)&#xA;        newsegment.color(&#39;black&#39;)&#xA;        newsegment.penup()&#xA;        segments.append(newsegment)&#xA;        score = score +1&#xA;        print(score)&#xA;&#xA;    move()&#xA;    time.sleep(delay)&#xA;&#xA;win.mainloop()طبق چیزی که قسمت قبل گفتم ویرگول بایندینگ (bindigs) خراب میکنه بنا بر این این قسمت رو از روی عکس زیر ویرایش کنید :بایندینگ درستاگر عیبی دیدید یا مشکلی داشتید در قسمت کامنت ها بنویسید .قسمت پنجم (اخر)</description><category>&#34;پایتون محض&#34;</category><author>مصطفی موسی خانی</author><pubDate>Thu, 15 Oct 2020 15:11:10 +0330</pubDate></item><item><title>ساخت بازی با پایتون قسمت سوم</title><link>https://virgool.ir/python-mahz/ساخت-بازی-با-پایتون-قسمت-سوم-x58onoigmf5n</link><description>بازی نهاییابتدا قسمت دوم را مشاهده کنید .در قسمت قبل سر مار و غذا ( میوه ) ساختیم . اول کار از اخر کدمون متن زیر پاک میکنیم :while True:&#xA;    win.update()&#xA;win.mainloop()حالا میریم سراغ حرکت ها (حرکت مار با فشار دکمه های کیبورد)مینویسم که اگر فلان کلید فشار داده شد برو فلان تابع اجرا کن . win.listen()&#xA;win.(goup, &#39;w&#39;)&#xA;win.(godown, &#39;s&#39;)&#xA;win.(goright, &#39;d&#39;)&#xA;win.(goleft, &#39;a&#39;)خط اول داره میگه صفحه گوش کن ( البته در اصطلاح ) خط دو : اگر دکمه (w) فشار داده شد تابع (goup) رو اجرا کن .و الی اخرحالا باید فانکشن ها شو (تابع هایی که قراره اجرا شن)  بنویسیم .میایم قبل از قسمت بایندینگ (binding) و بعد از سگمنت ( segments ) مینویسیم :def goup():&#xA;    head.direction = &#39;up&#39;&#xA;&#xA;def godown():&#xA;    head.direction = &#39;down&#39;&#xA;&#xA;def goright():&#xA;    head.direction = &#39;right&#39;&#xA;&#xA;def goleft():&#xA;    head.direction = &#39;left&#39;تابع اول می گوید که اگر گو اپ(goup) صدا زده شود هد دایرکشن (head.direction)  برابر اپ(up) می شود .حالا برای اینکه سر مار (snake head) حرکت کند یک تابع جدید به نام موو ( move ) مینویسیم .def move():&#xA;    if head.direction == &#39;up&#39;:&#xA;        y = head.ycor()&#xA;        head.sety(y+20)&#xA;&#xA;    if head.direction == &#39;down&#39;:&#xA;        y = head.ycor()&#xA;        head.sety(y-20)&#xA;&#xA;    if head.direction == &#39;right&#39;:&#xA;        x = head.xcor()&#xA;        head.setx(x+20)&#xA;&#xA;    if head.direction == &#39;left&#39;:&#xA;        x = head.xcor()&#xA;        head.setx(x-20)در اینحا می گوید که اگر دایرکشن هد (head.direction) برابر با اپ (up) بود 20 تا به y هد (head) اضافه کن یعنی اگر تابع گو اپ (goup) اجرا شد 20 پیکسل برو بالا .  تا اینجا درست ولی باید یک تایم مشخص کنید تا وقتی مثلا دکمه w زدیم کله مار سریع نره تا نا کجا اباد . برای اینکار میریم بالا و بعد از ایمپورت(import) ها و قبل از تنظیمات صفحه (win)  مینویسیم : delay = 0.1و حالا به اخر کد متن زیر (حلقه رفرش شدن صفحه و موو(move) ) اضافه می کنیم while True:&#xA;    win.update()&#xA;&#xA;    move()&#xA;    time.sleep(delay)&#xA;win.mainloop()حالا وقتی برنامه را اجرا کنیم و دکمه w را روی کیبورد بزنیم کله مار به سمت بالا حرکت می کند .اگر s را بزنیم به سمت پایین . اگر a بزنیم به سمت چپ .اگر d به سمت راست .حواستون باشه باید زبان کیبورد اینگیلیسی باشه !!کله مار در حال حرکتکد ما تا اینجای کار : # start&#xA;&#xA;import turtle&#xA;import time&#xA;import random&#xA;&#xA;delay = 0.1&#xA;&#xA;# firt setting&#xA;win = turtle.Screen()&#xA;win.title(&#39;Python Game&#39;)&#xA;win.bgcolor(&#39;green&#39;)&#xA;win.setup(width=600, height=600)&#xA;win.tracer(0)&#xA;&#xA;# snake head&#xA;head = turtle.Turtle()&#xA;head.speed(0)&#xA;head.shape(&#39;square&#39;)&#xA;head.color(&#39;white&#39;)&#xA;head.penup()&#xA;head.goto(0,0)&#xA;head.direction = &#39;stop&#39;&#xA;&#xA;# food&#xA;food = turtle.Turtle()&#xA;food.speed(0)&#xA;food.shape(&#39;circle&#39;)&#xA;food.color(&#39;red&#39;)&#xA;food.penup()&#xA;food.goto(0,100)&#xA;&#xA;# segments&#xA;segments = []&#xA;&#xA;# functions&#xA;def goup():&#xA;    head.direction = &#39;up&#39;&#xA;&#xA;def godown():&#xA;    head.direction = &#39;down&#39;&#xA;&#xA;def goright():&#xA;    head.direction = &#39;right&#39;&#xA;&#xA;def goleft():&#xA;    head.direction = &#39;left&#39;&#xA;&#xA;def move():&#xA;    if head.direction == &#39;up&#39;:&#xA;        y = head.ycor()&#xA;        head.sety(y+20)&#xA;&#xA;    if head.direction == &#39;down&#39;:&#xA;        y = head.ycor()&#xA;        head.sety(y-20)&#xA;&#xA;    if head.direction == &#39;right&#39;:&#xA;        x = head.xcor()&#xA;        head.setx(x+20)&#xA;&#xA;    if head.direction == &#39;left&#39;:&#xA;        x = head.xcor()&#xA;        head.setx(x-20)&#xA;&#xA;# bindings&#xA;win.listen()&#xA;win.(goup, &#39;w&#39;)&#xA;win.(godown, &#39;s&#39;)&#xA;win.(goright, &#39;d&#39;)&#xA;win.(goleft, &#39;a&#39;)&#xA;&#xA;while True:&#xA;    win.update()&#xA;    move()&#xA;    time.sleep(delay)&#xA;win.mainloop()دوستان عزیز نمی دونم چرا ویرگول یه قسمت بایندینگز(bindings) پاک میکنه و منجر به ارور میشه من عکس کد میزارم .لینک قسمت چهارم </description><category>&#34;پایتون محض&#34;</category><author>مصطفی موسی خانی</author><pubDate>Wed, 14 Oct 2020 19:08:20 +0330</pubDate></item><item><title>ساخت بازی با پایتون قسمت دوم</title><link>https://virgool.ir/python-mahz/ساخت-بازی-با-پایتون-قسمت-دوم-u3anns4s95ny</link><description>بازی نهاییابتدا قسمت اول را مشاهد کنید .در انتهای قسمت اول ساخت صفحه (win) رو تکمیل کردیم . در این قسمت میریم سراغ ساخت میوه (غذا) و بدن مار .ابتدا متن زیر رو از اخر کدمون پاک میکنیم : win.mainloop()حالا میریم که سر مار درست کنیم . برای این کار مینویسیم : # snake head&#xA;head = turtle.Turtle()&#xA;head.speed(0)&#xA;head.shape(&#39;square&#39;)&#xA;head.color(&#39;white&#39;)&#xA;head.penup()&#xA;head.direction = &#39;stop&#39;&#xA;خط اول مربوظ ساخت شکل است . خط دوم سرعت که فعلا  0 میزاریم .خط سوم شکل هست که مربع (square) مینویسیم .خط چهارم رنگ سر هست که سفید (white) مینویسیم . خط پنجم مینویسیم فعلا با کاربردش کاری نداریم . ( ولی ضروریه ) خط ششم هم برای اینه که بگیم سر کجا باشه که ما می خوایم در اول بازی وسط زمین باشه پس مینویسیم (0,0) .خط هفتم هم برای دایرکشن هست که برای شروع باید ثابت باشه .حالا میریم سراغ غذا یا همون سیب . همون فاکتور هارو برای غذا مینویسیم : # food&#xA;food = turtle.Turtle()&#xA;food.speed(0)&#xA;food.shape(&#39;circle&#39;)&#xA;food.color(&#39;red&#39;)&#xA;food.penup()&#xA;food.goto(0,100)فقط به جای مربع مینویسیم دایره (circle) و رنگش هم قرمز (red) دایرکشن هم نمی خواد چون قراره ثابت باشه .و برای شروع بازی میزاریم بره یکم بالاتر به نقظه (0,100) .حالا میریم سراغ قسمت هایی که باید بعد از هربار خوردن سیب به مار اضافه بشه که من اسمش رو میزارم (segments) یعنی قسمت ها .# segments&#xA;segments = []یک لیست خالی قرار میدیم تا بعدا با هربار خوردن سیب یکی بهش اضافه کنیم .برای اجرای کردن این برنامه ناقص باید اخر آن متن زیر اضافه کنیم تا یک حلقه ایجاد کنیم که صفحه رفرش شود و سر و غذا قابل دیدن باشند .while True:&#xA;    win.update()و متن زیر که حذف کردیم به اخرش اضافه می کنیم win.mainloop()این برنامه ما از قسمت اول تا اینحا به صورت کامل# start&#xA;&#xA;import turtle&#xA;import time&#xA;import random&#xA;&#xA;# firt setting&#xA;win = turtle.Screen()&#xA;win.title(&#39;Python Game&#39;)&#xA;win.bgcolor(&#39;green&#39;)&#xA;win.setup(width=600, height=600)&#xA;win.tracer(0)&#xA;&#xA;# snake head&#xA;head = turtle.Turtle()&#xA;head.speed(0)&#xA;head.shape(&#39;square&#39;)&#xA;head.color(&#39;white&#39;)&#xA;head.penup()&#xA;head.goto(0,0)&#xA;head.direction = &#39;stop&#39;&#xA;&#xA;# food&#xA;food = turtle.Turtle()&#xA;food.speed(0)&#xA;food.shape(&#39;circle&#39;)&#xA;food.color(&#39;red&#39;)&#xA;food.penup()&#xA;food.goto(0,100)&#xA;&#xA;# segments&#xA;segments = []&#xA;&#xA;while True:&#xA;    win.update()&#xA;win.mainloop()تصویر برنامه تا اینجای کاربرای این قسمت کافیه . اگر عیبی دیدید یا مشکلی داشتید در نظرات با من به اشتراک بگذارید . لینک قسمت سوم </description><category>&#34;پایتون محض&#34;</category><author>مصطفی موسی خانی</author><pubDate>Wed, 14 Oct 2020 18:19:15 +0330</pubDate></item><item><title>ساخت بازی با پایتون قسمت اول</title><link>https://virgool.ir/python-mahz/ساخت-بازی-با-پایتون-قسمت-اول-urik0d8vk2ap</link><description>بازی نهاییخب ما می خوایم بازی مار که در گوشی های نوکیا بود رو با پایتون بنویسیم ( از صفر تا صد ) برای شروع باید کتابخونه turtle رو نصب کنیم . برای اینکار در صفحه Cmd مینویسید : pip install turtleخب حالا میریم که شروع کنیم . یک پوشه با نام دلخواه ایجاد کنید . بعد یک فایل پایتون ایجاد می کنیم (ترجیها با نام main.py ) اول از همه کتابخانه turtle و time و random رو ایمپورت می کنیم . import turtle&#xA;import time&#xA;import randomتوجه : رندوم و تایم نیاز به نصب ندارند !!بعدش میریم سراغ ساخت یک پس زمینه (ویندو) .به طور خلاصه در برنامه مینویسیم (win) می تونید نام دلخواهی روی ان بگذارید . برای این کار مینویسیم : win = turtle.Screen()&#xA;win.title(&#39;Python Game&#39;)&#xA;win.bgcolor(&#39;green&#39;)&#xA;win.setup(width=600, height=600)&#xA;win.tracer(0)در اینجا اسم صفحه هست (python game) شما می تونید اسم دلخواهی روی اون بگذارید . رنگ پس زمینه هم سبز گذاشتم چون سبز از همه بهتره برای بازی مار . (bgcolor  برای رنگ بک گراند)و win.setup  هم برای اندازه صفحه هست که من یک مربع 600 در 600 گذاشتم .حالا برای تست صفحه اخر اون متن زیر را بزارید تا صفحه سریع بسته نشود . win.mainloop()حالا برنامه را اجرا می کنیم یک صفحه سبز خالی می بینیم . برنامه اجرا شدهکد ما تا اینجای کار :# start&#xA;import turtle&#xA;import time&#xA;import random&#xA;&#xA;# firt setting&#xA;win = turtle.Screen()&#xA;win.title(&#39;Python Game&#39;)&#xA;win.bgcolor(&#39;green&#39;)&#xA;win.setup(width=600, height=600)&#xA;win.tracer(0)&#xA;win.mainloop()برای قسمت اول کافیه . با ما همراه باشید با قسمت دوم .برای دیدن قسمت دوم کلیک کنید .</description><category>&#34;پایتون محض&#34;</category><author>مصطفی موسی خانی</author><pubDate>Wed, 14 Oct 2020 15:13:44 +0330</pubDate></item></channel></rss>