🚀 آکادمی برنامهنویسی و بازیسازی مهندس دیلمی
بچههای عزیز، در این سایت میتوانید جزوه هر جلسه را همراه با بازیها و شبیهسازهای زنده مطالعه کنید، نسخه PDF یا Word آن را دانلود نمایید و در پایان جزوه، پاسخ چالشها را مستقیماً برای مهندس دیلمی بفرستید!
- ابتدا نام خودت را در کادر بالای صفحه بنویس.
- روی دکمه «ورود به جزوه شماره ۱» در کارت زیر کلیک کن.
- درسنامه را بخوان و با ۵ شبیهساز داخل جزوه بازی کن.
- در بخش آخر جزوه، به ۶ چالش پاسخ بده و دکمه «ارسال برای مهندس دیلمی» را بزن!
ویترین جزوههای کلاس
روی جزوه فعال کلیک کن تا وارد درسنامه، آزمایشگاهها و بخش ارسال تکلیف شوی:
دفترچه ماجراجویی برنامهنویسها: از اسکرچ تا پایتون!
شامل هر ۷ بخش درسنامه مصور + ۵ شبیهساز و بازی زنده + ۶ چالش و تمرین خانه
- ✔ بخش ۱ و ۲: نقشه مخفی صفحه بازی (محور مختصات افقی و عمودی) + پروژه بازی موزخوری و فرار از دشمن در اسکرچ
- ✔ بخش ۳ و ۴: اشکال فلوچارت (بیضی، مستطیل، لوزی) + شبیهساز گامبهگام مبارزه با غول و متغیرها
- ✔ بخش ۵: الگوریتم جستجوی دودویی (موشک در برابر حلزون) + ماشین ۴ بیتی تیم ۴ نفره ما
- ✔ بخش ۶ و ۷: جدول ترجمه اسکرچ فارسی به پایتون، لاکپشت نقاش، قلعه باگها + ۶ چالش و ارسال مستقیم تکلیف
مسابقه ۴ لاکپشت در پایتون و ساخت بازی قلعه باگها
مخصوص جلسات بعدی کلاس پس از تکمیل چالشهای جزوه شماره ۱
- 🔒 کدنویسی کامل مسابقه ۴ لاکپشت رنگی در محیط پایتون
- 🔒 کشیدن ستاره و اشکال رنگی پیشرفته با حلقه تکرار
- 🔒 تبدیل بازی رومیزی «فرار از قلعه باگها» به کد واقعی پایتون
🚀 دفترچه ماجراجویی برنامهنویسها: از اسکرچ تا پایتون!
آموزش تعاملی محور مختصات، پروژه بازی موزخوری اسکرچ، فلوچارت مبارزه با غول، اعداد باینری و لاکپشت نقاش پایتون
بخش اول: نقشه مخفی صفحه بازی (محور مختصات افقی و عمودی)
چطور کامپیوتر جای دقیق کاراکترها را با اعداد مثبت و منفی پیدا میکند؟
صفحه مانیتور برای کامپیوتر مثل یک زمین شطرنج خطکشیشده است. کاراکتر بازی در شروع کار، دقیقاً وسط صفحه یعنی در نقطه (0, 0) میایستد. برای حرکت دادن او از دو محور استفاده میکنیم:
↔️ محور افقی X (حرکت به چپ و راست)
- اگر به سمت راست برویم، اعداد مثبت (+) میشوند (مثل قدم زدن رو به جلو).
- اگر به سمت چپ برگردیم، اعداد منفی (-) میشوند (مثل عقبگرد رفتن).
↕️ محور عمودی Y (قانون آسانسور ساختمان)
- طبقه همکف عدد صفر است و رفتن به طبقات بالا عدد مثبت (+) میگیرد.
- رفتن به سمت پایین (پارکینگ زیرزمین با دکمههای
-1و-2) عدد منفی (-) میگیرد!
XY| جهت حرکت کاراکتر | محور مربوطه | علامت عدد | دستور فارسی در اسکرچ |
|---|---|---|---|
| حرکت به سمت راست ➡️ | محور افقی X |
مثبت (+) | تغییر محور افقی به اندازه ۱۰ واحد مثبت |
| حرکت به سمت چپ ⬅️ | محور افقی X |
منفی (-) | تغییر محور افقی به اندازه ۱۰ واحد منفی |
| حرکت به سمت بالا ⬆️ | محور عمودی Y |
مثبت (+) | تغییر محور عمودی به اندازه ۱۰ واحد مثبت |
| حرکت به سمت پایین ⬇️ | محور عمودی Y |
منفی (-) | تغییر محور عمودی به اندازه ۱۰ واحد منفی |
بخش دوم: پروژه بازی ما در اسکرچ (موزخوری و فرار از دشمن تعقیبکننده) 🐱🍌👾
مرور کامل ۳ قانون اصلی بازی که با هم در کلاس ساختیم + شبیهساز قابل بازی!
وقتی وقتی پرچم سبز کلیک شد اجرا میشود، داخل حلقه برای همیشه تکرار کن چهار کلید را بررسی میکنیم:
وقتی گربه به موز میرسد، چطور امتیازش بالا میرود و موز به نقطه جدیدی میپرد؟
دشمن چطور همیشه دنبال گربه ما میدود و با برخوردش بازی تمام میشود؟
با کلیدهای جهتنمای کیبورد یا دکمههای سمت چپ، موزها را بخور و از دشمن فرار کن!
بخش سوم: نقشه گنج برنامهنویسها (الگوریتم و فلوچارت)
آشنایی با ۳ شکل هندسی استاندارد برای کشیدن نقشه بازی قبل از کدنویسی
کامپیوترها سرعت فوقالعادهای دارند اما خودشان قدرت فکر کردن ندارند! اگر به آنها دستور دقیق ندهیم، برنامه دچار خطا یا باگ میشود. به همین خاطر برنامهنویسها قبل از کدنویسی، نقشه راه برنامه را با ۳ شکل زیر میکشند که به آن فلوچارت میگویند:
شکل اول: بیضی — شروع و پایان
نشاندهنده نقطه شروع بازی با زدن پرچم سبز در اسکرچ و نقطه پایان برنامه است.
شکل دوم: مستطیل — انجام کار و دستور
برای اجرای یک حرکت یا تغییر مقدار متغیرها استفاده میشود؛ مثلاً: «۵۰ واحد از جان غول کم کن».
شکل سوم: لوزی — نگهبان شرط
سوالی میپرسد که دو مسیر دارد: مسیر بله یا مسیر خیر؛ مثلاً: «آیا جان غول صفر شده است؟»
بخش چهارم: شبیهساز گامبهگام فلوچارت و متغیرها (بازی مبارزه با غول) 🐉⚔️
متغیر مثل یک جعبه برچسبدار است و شرط مثل نگهبانی است که داخل جعبه را چک میکند!
⚔️ شبیهساز زنده فلوچارت مبارزه با غول
روی دکمه «➡️ قدم بعدی» کلیک کن تا ببینی کامپیوتر چطور در هر مرحله جعبه متغیر bossHP را بررسی میکند:
bossHP):
100 / 100
# Start Boss Fight
bossHP = 100bossHP = bossHP - 50if bossHP <= 0:📦 مرحله اول: ساختن جعبه متغیر
کامپیوتر یک کارتن خالی میآورد، برچسب bossHP را رویش میچسباند و عدد 100 را داخل آن میگذارد.
⚔️ مرحله دوم: ضربه اول در حلقه
با ضربه اول شمشیر، ۵۰ واحد از ۱۰۰ کم میشود و عدد داخل جعبه 50 میشود. لوزی شرط میپرسد: آیا ۵۰ مساوی یا کمتر از صفر است؟ جواب خیر است؛ پس به مرحله حمله برمیگردد!
🏆 مرحله سوم: ضربه دوم و ترفند هکرها!
با ضربه دوم، عدد جعبه به 0 میرسد و شرط پیروزی برقرار میشود. اگر دکمه «⚡ ترفند هکرها» را بزنید، جان غول روی 1 قرار میگیرد و با اولین ضربه شکست میخورد!
| گام اجرا | شکل فلوچارت | اتفاقی که در بازی میافتد | مقدار جعبه bossHP |
کد معادل در پایتون |
|---|---|---|---|---|
| گام ۱ | ⭕ بیضی شروع | شروع بازی با کلیک روی پرچم سبز | — | # Start Game |
| گام ۲ | ▭ مستطیل متغیر | ساختن جعبه جان غول با مقدار اولیه ۱۰۰ | 100 | bossHP = 100 |
| گام ۳ (دور اول) | ▭ مستطیل دستور | ضربه اول شمشیر! ۵۰ واحد از جان غول کم میشود | 50 | bossHP = bossHP - 50 |
| گام ۴ (دور اول) | 🔶 لوزی شرط | آیا ۵۰ کمتر یا مساوی صفر است؟ خیر! برگشت به حمله | 50 | if bossHP <= 0: |
| گام ۳ (دور دوم) | ▭ مستطیل دستور | ضربه دوم شمشیر! ۵۰ واحد دیگر کم میشود | 0 | bossHP = bossHP - 50 |
| گام آخر | ⭕ بیضی پایان | شرط لوزی برقرار شد (مسیر بله)! پیروزی و پایان بازی | 0 | print("Victory!") |
بخش پنجم: رازهای مخفی کامپیوتر (جستجوی دودویی و ماشین ۴ بیتی)
مقایسه روش حلزون و روش موشک در پیدا کردن عدد ۷۵ + ماشین ۴ بیتی تیم ۴ نفره ما
الف — الگوریتم جستجوی دودویی: پیدا کردن عدد ۷۵ بین ۱ تا ۱۰۰
اول ۵۰ را میپرسد و در قدم دوم به ۷۵ میرسد؛ یعنی فقط با ۲ سوال برنده میشود!
از ۱ و ۲ و ۳ شروع میکند و باید ۷۵ سوال بپرسد تا به عدد ۷۵ برسد!
💡 ماشین ۴ بیتی تیم ۴ نفره ما (زبان صفر و یک کامپیوتر)
روی کارت هر دانشآموز کلیک کن تا بین حالت ایستاده / روشن (۱) و نشسته / خاموش (۰) تغییر کند!
0101
0 + 4 + 0 + 1 = 5
بخش ششم: ماجراجویی جلسه آینده (ورود به پایتون و لاکپشت نقاش) 🐍🐢
جدول ترجمه دستورات فارسی اسکرچ به کد پایتون + آزمایشگاه رسم شکل با حلقه تکرار
| کاری که میخواهیم انجام دهیم | بلوک فارسی در اسکرچ | کد معادل در پایتون |
|---|---|---|
| ۱۰۰ قدم به جلو حرکت کن | ۱۰۰ گام حرکت کن | t.forward(100) |
| ۹۰ درجه به سمت راست بچرخ | ۹۰ درجه به راست بچرخ | t.right(90) |
| ۴ بار دستورات را تکرار کن (حلقه) | ۴ بار تکرار کن | for i in range(4): |
| تاس بریز (عدد شانسی بین ۱ تا ۶) | انتخاب عدد تصادفی بین ۱ تا ۶ | random.randint(1, 6) |
| بررسی شرط توسط نگهبان بازی | اگر ... آنگاه ... | if ... : |
🐢 آزمایشگاه لاکپشت پایتون: راز تنبلی برنامهنویسها با حلقه تکرار!
روی دکمههای زیر کلیک کن تا ببینی لاکپشت پایتون چطور با حلقه تکرار شکل را میکشد:
import turtle
t = turtle.Turtle()
t.shape("turtle")
# Repeat 4 times to draw a Square
for i in range(4):
t.forward(100)
t.right(90)
💡 نکته طلایی برای چالش ششم: عدد داخل range(...) همیشه برابر با تعداد ضلعهای شکل است!
بخش هفتم: چالشها و ارسال مستقیم تکالیف برای مهندس دیلمی 🏆
پاسخهایت را وارد کن و دکمه ارسال در پایین صفحه را بزن تا کارنامهات مستقیماً برای استاد فرستاده شود!
🧭 چالش ۱ (محور مختصات): ربات گمشده در نقشه!
۲۰ امتیاز
گربه اسکرچ در نقطه شروع (0, 0) ایستاده است. اگر در بازی موزخوری اول ۴ بار کلید چپ (هر بار ۱۰ واحد منفی) و بعد ۳ بار کلید پایین (هر بار ۱۰ واحد منفی) را فشار دهد، گربه در چه مختصاتی ایستاده است؟
X =
Y =
🐞 چالش ۲ (باگگیری بازی موزخوری): چرا بازی متوقف شد؟
۲۰ امتیازفرض کن یکی از بچهها کدِ خوردن موز را نوشته است؛ اما وقتی گربه به موز میخورد، به جای اینکه امتیازش زیاد شود، درجا کل بازی متوقف میشود! به نظرت او کدام دستور دشمن را اشتباهی داخل شرطِ موز گذاشته است؟
🎨 چالش ۳ (کارت گرافیک انسانی — پیکسلآرت ۵×۵)
۲۰ امتیازدر جدول زیر، روی هر خانهای که عدد 1 دارد کلیک کن تا رنگی شود و خانههای 0 را سفید بگذار. سپس بنویس یا انتخاب کن چه شکلی ظاهر شد!
🔢 چالش ۴ (رمزگشایی ماشین ۴ بیتی)
۲۰ امتیاز
با استفاده از ارزشهای ۸ و ۴ و ۲ و ۱، حساب کن کد باینری 1101 چه عددی را نشان میدهد؟
راهنمایی: 8 + 4 + 0 + 1 = ?
🏰 چالش ۵ (کامپیوتر انسانی در بازی قلعه باگها)
۲۰ امتیاز
اگر در شروع بازی جان تو ۱۰ باشد (HP = 10) و در خانه قرمز ۴ واحد از آن کم شود (HP = HP - 4)، چه عددی در جعبه جان باقی میماند؟
🐢 چالش ۶ (امتیازی پایتون): عدد داخل حلقه لاکپشت
+۱۰ امتیاز جایزه!
برای کشیدن یک مربع چهارضلعی، در حلقه پایتون نوشتیم for i in range(4):. اگر بخواهیم یک مثلث (سهضلعی) و یک ششضلعی بکشیم، باید عدد داخل range را چند بگذاریم؟
📬 پس از زدن دکمه زیر، پاسخهایت بلافاصله تصحیح شده و به پنل آنلاین مهندس دیلمی ارسال میشود.