[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"post-data-sakht-bazi-ba-python":3,"comments-23":58},{"post":4,"course":41,"related":42},{"id":5,"slug":6,"title":7,"content":8,"excerpt":9,"category":10,"date":11,"readTime":12,"wordCount":13,"image":14,"author":15,"authorRole":16,"authorImg":17,"reviewedBy":18,"tags":19,"relatedCourseSlug":22,"categoryKey":23,"summaryPoints":24,"faq":28,"seoTitle":38,"seoDesc":39,"createdAtIso":40,"updatedAtIso":40,"updatedDate":41},23,"sakht-bazi-ba-python","ساخت بازی با پایتون برای نوجوانان: سه بازی ساده، قدم‌به‌قدم با کد","\n\u003Cp>بیشتر بچه‌ها برنامه‌نویسی را برای ساختن بازی شروع می‌کنند، ولی بیشتر آموزش‌ها با تعریف متغیر و نوع داده شروع می‌شوند و همان‌جا انگیزه از بین می‌رود. این مقاله برعکس است: از همان اول بازی می‌سازیم و مفاهیم را وسط ساختن یاد می‌گیریم.\u003C\u002Fp>\n\n\u003Cp>سه بازی از ساده به سخت: یک مسابقه‌ی سوال و جواب، یک بازی با لاک‌پشت که با کیبورد کنترل می‌شود، و قدم اول بازی‌سازی واقعی با کتابخانه‌ی pygame. دو بازی اول به هیچ نصب اضافه‌ای نیاز ندارند.\u003C\u002Fp>\n\n\u003Ch2>قبل از شروع\u003C\u002Fh2>\n\n\u003Cul>\n  \u003Cli>\u003Cstrong>پایتون ۳\u003C\u002Fstrong> را از python.org نصب کنید. برای نوجوانان، محیط \u003Cstrong>Thonny\u003C\u002Fstrong> ساده‌ترین شروع است.\u003C\u002Fli>\n  \u003Cli>اگر هنوز با print و input و if آشنا نیستید، اول \u003Ca href=\"\u002Flearning\u002Ftamrin-python-kelas-haftom\">تمرین‌های پایتون کلاس هفتم\u003C\u002Fa> را حل کنید؛ یک یا دو جلسه بیشتر طول نمی‌کشد.\u003C\u002Fli>\n  \u003Cli>کدها را خودتان تایپ کنید، کپی نکنید. تایپ کردن و گرفتن خطا بخشی از یاد گرفتن است.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch2>بازی ۱: مسابقه‌ی سوال و جواب\u003C\u002Fh2>\n\n\u003Cp>\u003Cstrong>چه یاد می‌گیرید:\u003C\u002Fstrong> لیست، حلقه، شرط و نگه داشتن امتیاز.\u003C\u002Fp>\n\n\u003Cpre>\u003Ccode>questions = [\n    (\"What is 7 x 8?\", \"56\"),\n    (\"Capital of Iran?\", \"tehran\"),\n    (\"How many legs does a spider have?\", \"8\"),\n]\n\nscore = 0\n\nfor question, answer in questions:\n    reply = input(question + \" \")\n    if reply.strip().lower() == answer:\n        print(\"Correct!\")\n        score = score + 1\n    else:\n        print(\"Wrong. The answer was\", answer)\n\nprint(\"Your score:\", score, \"out of\", len(questions))\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>سوال‌ها در یک لیست ذخیره شده‌اند و حلقه یکی‌یکی آن‌ها را می‌پرسد. \u003Ccode>strip\u003C\u002Fcode> فاصله‌های اضافه را پاک می‌کند و \u003Ccode>lower\u003C\u002Fcode> جواب را کوچک می‌کند تا Tehran و tehran هر دو درست حساب شوند.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>چالش شما:\u003C\u002Fstrong> ده سوال از درس‌های مدرسه اضافه کنید و در آخر بر اساس امتیاز پیام متفاوتی چاپ کنید؛ مثلاً اگر همه را درست جواب داد بنویسد «قهرمان!».\u003C\u002Fp>\n\n\u003Ch2>بازی ۲: لاک‌پشت گرسنه\u003C\u002Fh2>\n\n\u003Cp>\u003Cstrong>چه یاد می‌گیرید:\u003C\u002Fstrong> گرافیک، کنترل با کیبورد، تابع و عدد تصادفی.\u003C\u002Fp>\n\n\u003Cp>یک لاک‌پشت که با کلیدهای جهت حرکت می‌کند و باید به غذایی برسد که هر بار جای تصادفی ظاهر می‌شود. ماژول turtle همراه خود پایتون نصب است.\u003C\u002Fp>\n\n\u003Cpre>\u003Ccode>import turtle\nimport random\n\nscreen = turtle.Screen()\nscreen.title(\"Hungry Turtle\")\n\nplayer = turtle.Turtle()\nplayer.shape(\"turtle\")\nplayer.color(\"green\")\nplayer.penup()\n\nfood = turtle.Turtle()\nfood.shape(\"circle\")\nfood.color(\"red\")\nfood.penup()\nfood.goto(random.randint(-200, 200), random.randint(-200, 200))\n\nscore = 0\n\ndef check_food():\n    global score\n    if player.distance(food) &lt; 20:\n        score = score + 1\n        print(\"Score:\", score)\n        food.goto(random.randint(-200, 200), random.randint(-200, 200))\n\ndef up():\n    player.setheading(90)\n    player.forward(20)\n    check_food()\n\ndef down():\n    player.setheading(270)\n    player.forward(20)\n    check_food()\n\ndef left():\n    player.setheading(180)\n    player.forward(20)\n    check_food()\n\ndef right():\n    player.setheading(0)\n    player.forward(20)\n    check_food()\n\nscreen.onkey(up, \"Up\")\nscreen.onkey(down, \"Down\")\nscreen.onkey(left, \"Left\")\nscreen.onkey(right, \"Right\")\nscreen.listen()\n\nturtle.done()\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>هر کلید جهت به یک تابع وصل شده است. تابع \u003Ccode>check_food\u003C\u002Fcode> فاصله‌ی لاک‌پشت تا غذا را می‌سنجد و اگر کمتر از ۲۰ بود، امتیاز می‌دهد و غذا را جای دیگری می‌برد. بعد از اجرا، روی پنجره‌ی بازی کلیک کنید تا کلیدها کار کنند.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>چالش شما:\u003C\u002Fstrong> یک دشمن دوم اضافه کنید که اگر لاک‌پشت به آن خورد بازی تمام شود، یا کاری کنید لاک‌پشت با هر غذا کمی سریع‌تر شود.\u003C\u002Fp>\n\n\u003Ch2>بازی ۳: قدم اول با pygame\u003C\u002Fh2>\n\n\u003Cp>\u003Cstrong>چه یاد می‌گیرید:\u003C\u002Fstrong> حلقه‌ی بازی، رویدادها و رسم کردن در هر فریم؛ همان ساختاری که بازی‌های واقعی دارند.\u003C\u002Fp>\n\n\u003Cp>pygame محبوب‌ترین کتابخانه‌ی بازی‌سازی دوبعدی با پایتون است. اول نصبش کنید:\u003C\u002Fp>\n\n\u003Cpre>\u003Ccode>pip install pygame\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>برنامه‌ی زیر یک پنجره باز می‌کند که در آن یک سکوی زرد با کلیدهای چپ و راست حرکت می‌کند:\u003C\u002Fp>\n\n\u003Cpre>\u003Ccode>import pygame\n\npygame.init()\nscreen = pygame.display.set_mode((600, 400))\npygame.display.set_caption(\"My First Game\")\nclock = pygame.time.Clock()\n\nx = 275\nrunning = True\n\nwhile running:\n    for event in pygame.event.get():\n        if event.type == pygame.QUIT:\n            running = False\n\n    keys = pygame.key.get_pressed()\n    if keys[pygame.K_LEFT] and x &gt; 0:\n        x = x - 6\n    if keys[pygame.K_RIGHT] and x &lt; 550:\n        x = x + 6\n\n    screen.fill((20, 20, 50))\n    pygame.draw.rect(screen, (255, 200, 0), (x, 360, 50, 15))\n    pygame.display.flip()\n    clock.tick(60)\n\npygame.quit()\u003C\u002Fcode>\u003C\u002Fpre>\n\n\u003Cp>مهم‌ترین مفهوم اینجا \u003Cstrong>حلقه‌ی بازی\u003C\u002Fstrong> است: برنامه در هر ثانیه ۶۰ بار سه کار را تکرار می‌کند: رویدادها را می‌خواند (مثل بستن پنجره)، وضعیت را به‌روز می‌کند (جای سکو) و صفحه را از نو می‌کشد. همه‌ی بازی‌های کامپیوتری، از ساده تا پیچیده، روی همین ساختار ساخته شده‌اند.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>چالش شما:\u003C\u002Fstrong> یک توپ اضافه کنید که از بالا بیفتد و اگر سکو آن را گرفت امتیاز بگیرید. این قدم اول ساختن بازی «گرفتن» است.\u003C\u002Fp>\n\n\u003Ch2>بعد از این سه بازی\u003C\u002Fh2>\n\n\u003Cul>\n  \u003Cli>\u003Cstrong>بازی خودتان را طراحی کنید:\u003C\u002Fstrong> ایده را روی کاغذ بکشید و به قدم‌های کوچک بشکنید؛ اول شخصیت حرکت کند، بعد دشمن، بعد امتیاز.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>صدا و تصویر اضافه کنید:\u003C\u002Fstrong> pygame می‌تواند عکس و صدا را بارگذاری کند.\u003C\u002Fli>\n  \u003Cli>\u003Cstrong>بازی را به دوستانتان بدهید تا امتحان کنند.\u003C\u002Fstrong> بازخورد دیگران بهترین راه بهتر کردن بازی است.\u003C\u002Fli>\n\u003C\u002Ful>\n\n\u003Ch2>سوالات رایج\u003C\u002Fh2>\n\n\u003Cp>\u003Cstrong>«برای ساخت بازی، پایتون بهتر است یا اسکرچ؟»\u003C\u002Fstrong>\u003Cbr>\nبرای کودکان زیر ۱۰ سال اسکرچ؛ ساخت بازی با آن سریع‌تر است و خطای تایپی ندارد. برای نوجوانان پایتون، چون سقف پیشرفتش خیلی بالاتر است. \u003Ca href=\"\u002Flearning\u002Fbehtarin-zaban-barnamenevisi-koodakan\">مقایسه‌ی کامل اسکرچ و پایتون\u003C\u002Fa> را ببینید.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>«با پایتون می‌شود بازی‌های حرفه‌ای ساخت؟»\u003C\u002Fstrong>\u003Cbr>\nبازی‌های دوبعدی و مستقل بله. بازی‌های سه‌بعدی بزرگ معمولاً با موتورهایی مثل Unity یا Unreal و زبان‌های دیگر ساخته می‌شوند، ولی منطق برنامه‌نویسی که در پایتون یاد می‌گیرید، همان‌جا هم به کار می‌آید.\u003C\u002Fp>\n\n\u003Cp>\u003Cstrong>«برای بازی‌سازی باید ریاضی قوی باشم؟»\u003C\u002Fstrong>\u003Cbr>\nبرای شروع نه. مختصات و جمع و تفریق کافی است. هر چه بازی پیچیده‌تر شود، ریاضی بیشتری لازم می‌شود و خیلی از بچه‌ها ریاضی را اولین بار با بازی‌سازی دوست دارند.\u003C\u002Fp>\n\n\u003Ch2>جمع‌بندی\u003C\u002Fh2>\n\n\u003Cp>بازی‌سازی بهترین دلیل برای یاد گرفتن برنامه‌نویسی است: هر مفهوم تازه، یک قابلیت تازه برای بازی شماست. با همین سه بازی، لیست، حلقه، شرط، تابع، گرافیک و حلقه‌ی بازی را تمرین کرده‌اید.\u003C\u002Fp>\n\n\u003Cp>اگر می‌خواهید این مسیر را با مربی، پروژه‌های بیشتر و بازخورد روی کدتان ادامه دهید، \u003Ca href=\"\u002Fcourses\u002Fpython-kids\">دوره‌ی پایتون کودکان و نوجوانان داناورس\u003C\u002Fa> از اولین دستور تا ساخت بازی و شکل‌های گرافیکی را پروژه‌محور پیش می‌برد. برای والدین هم \u003Ca href=\"\u002Flearning\u002Famoozesh-python-koodakan\">راهنمای آموزش پایتون برای کودکان\u003C\u002Fa> توضیح می‌دهد چطور کمک کنند.\u003C\u002Fp>\n  ","بیشتر بچه‌ها برنامه‌نویسی را برای ساختن بازی شروع می‌کنند، ولی بیشتر آموزش‌ها با تعریف متغیر و نوع داده شروع می‌شوند و همان‌جا انگیزه از بین می‌رود. این مقاله برعکس است: از همان او...","کودک و نوجوان","۷ مهر ۱۴۰۵","۵ دقیقه",916,"\u002Fimages\u002Fblog\u002Fsakht-bazi-ba-python.jpg","تیم تولید محتوای داناورس","مدرس و کارشناس آکادمی","\u002Fimages\u002Flogo-light.png","داود قبادی",[20,21],"برنامه‌نویسی کودکان","داناورس","python-kids","kids",[25,26,27],"سه بازی پایتون برای نوجوانان، از ساده به سخت: مسابقه‌ی سؤال و جواب، لاک‌پشت گرسنه با ماژول turtle و قدم اول با pygame.","هر بازی چند مفهوم را در عمل تمرین می‌دهد: لیست، حلقه، شرط، تابع، عدد تصادفی، کنترل با کیبورد و حلقه‌ی بازی.","برای شروع، پایتون ۳ و محیط Thonny کافی است؛ اگر print و input و if را بلد نیستید، اول تمرین‌های پایتون کلاس هفتم را حل کنید.",[29,32,35],{"q":30,"a":31},"برای ساخت بازی، پایتون بهتر است یا اسکرچ؟","برای کودکان زیر ۱۰ سال اسکرچ؛ ساخت بازی با آن سریع‌تر است و خطای تایپی ندارد. برای نوجوانان پایتون، چون سقف پیشرفتش خیلی بالاتر است. مقایسه‌ی کامل اسکرچ و پایتون را ببینید.",{"q":33,"a":34},"با پایتون می‌شود بازی‌های حرفه‌ای ساخت؟","بازی‌های دوبعدی و مستقل بله. بازی‌های سه‌بعدی بزرگ معمولاً با موتورهایی مثل Unity یا Unreal و زبان‌های دیگر ساخته می‌شوند، ولی منطق برنامه‌نویسی که در پایتون یاد می‌گیرید، همان‌جا هم به کار می‌آید.",{"q":36,"a":37},"برای بازی‌سازی باید ریاضی قوی باشم؟","برای شروع نه. مختصات و جمع و تفریق کافی است. هر چه بازی پیچیده‌تر شود، ریاضی بیشتری لازم می‌شود و خیلی از بچه‌ها ریاضی را اولین بار با بازی‌سازی دوست دارند.","ساخت بازی با پایتون برای نوجوانان: سه بازی ساده با کد","آموزش ساخت بازی با پایتون برای نوجوانان: مسابقه‌ی سوال و جواب، بازی لاک‌پشت با کیبورد و اولین بازی با pygame، قدم‌به‌قدم با کد کامل و چالش برای هر بازی.","2026-09-29T17:08:27.828211+00:00",null,[43,48,53],{"path":44,"title":45,"desc":46,"image":47},"\u002Flearning\u002Fchecklist-entekhab-kelas-koodakan","چک‌لیست انتخاب کلاس برنامه‌نویسی و رباتیک برای کودکان (قابل چاپ)","قبل از ثبت‌نام کلاس برنامه‌نویسی یا رباتیک کودک این سوال‌ها را بپرسید: مدرس و اندازه‌ی کلاس، پروژه‌ها، گزارش پیشرفت، هزینه‌ی کامل و ایمنی کلاس آنلاین.","\u002Fimages\u002Fblog\u002Fchecklist-entekhab-kelas-koodakan.jpg",{"path":49,"title":50,"desc":51,"image":52},"\u002Flearning\u002Fhoosh-masnooi-koodakan","هوش مصنوعی برای کودکان: به زبان ساده، با مثال و فعالیت‌های سرگرم‌کننده","هوش مصنوعی چیست به زبان کودکانه؟ توضیحی که می‌شود برای کودک خواند، سه فعالیت بدون کامپیوتر، قواعد ایمنی چت‌بات‌ها و مسیر یادگیری هوش مصنوعی برای کودکان.","\u002Fimages\u002Fblog\u002Fhoosh-masnooi-koodakan.jpg",{"path":54,"title":55,"desc":56,"image":57},"\u002Flearning\u002Ftamrin-python-kelas-haftom","تمرین پایتون کلاس هفتم: ۱۶ تمرین با جواب از آسان تا بازی‌سازی (قابل چاپ)","تمرین پایتون برای دانش‌آموزان کلاس هفتم و مبتدی‌ها: ۱۶ تمرین از چاپ و متغیر تا شرط، حلقه، بازی حدس عدد و نقاشی با لاک‌پشت، همراه با جواب و نسخه‌ی قابل چاپ.","\u002Fimages\u002Fblog\u002Ftamrin-python-kelas-haftom.jpg",[]]