۵ بازی ساده با اسکرچ که کودک میتواند بسازد (راهنمای ۱۴۰۵)
نویسنده: آموزشگاه فنی حرفهای آزاد آراهوش
اگر کودک شما اسکرچ را شروع کرده و میپرسد «حالا چه بسازم؟»، این مقاله پنج پروژه کوچک و واقعی برایش دارد: گرفتن سیب، ماز، مسابقه سؤالوجواب، توپ و راکت، و پرش از مانع. برای هر بازی توضیح میدهیم چه مفهومی یاد گرفته میشود، اسکریپت پایه چه شکلی است و بعداً چطور میشود آن را بهتر کرد. این مطلب برای کودکان حدود ۸ تا ۱۲ سال، والدین و مربیها نوشته شده، از جمله خانوادههای درچه اصفهان که دنبال کلاس برنامهنویسی کودکان هستند. اگر هنوز با خود اسکرچ آشنا نیستید، اول مقاله «آموزش اسکرچ چیست؟» را بخوانید. اسکریپتها ساده و استاندارد هستند، اما عددهایشان را با اندازه شخصیتها و سرعت کامپیوتر خودتان تنظیم کنید.
خلاصه: پنج بازی و پنج مفهوم
- بازی ۱، گرفتن سیب: متغیر، امتیاز و عدد تصادفی
- بازی ۲، ماز: حلقه، شرط و برخورد با رنگ
- بازی ۳، مسابقه سؤالوجواب: گرفتن ورودی از کاربر و شرط «اگر... وگرنه»
- بازی ۴، توپ و راکت: جهت حرکت و برخورد دو شخصیت
- بازی ۵، پرش از مانع: حلقه تکرار، حرکت پیوسته و مرحلهبندی
قبل از شروع: اسکرچ آنلاین یا برنامه آفلاین؟
اسکرچ را گروه Lifelong Kindergarten در MIT Media Lab توسعه میدهد و طبق سایت رسمیاش، برای جوانان ۸ تا ۱۶ ساله طراحی شده است؛ با این حال همه سنها از آن استفاده میکنند. رایگان است و دو راه برای کار دارید: ویرایشگر داخل مرورگر، یا «برنامه اسکرچ» که بدون اینترنت پروژه میسازد.
یک نکته که والدین باید بدانند: وقتی کودک پروژهای را در سایت به اشتراک بگذارد (Share)، آن پروژه برای همه قابل دیدن میشود و بقیه میتوانند نظر بگذارند. اگر نمیخواهید این اتفاق بیفتد، پروژه را فقط ذخیره کنید و به اشتراک نگذارید، یا از برنامه آفلاین استفاده کنید که بخش اجتماعی ندارد. ما این نکته را از توضیحات رسمی و یک بررسی ثانویه گرفتهایم؛ تنظیمات حساب را قبل از ساخت اکانت کودک خودتان ببینید.
درباره رابط فارسی هم محتاط باشید. ویرایشگر اسکرچ به دهها زبان ترجمه شده و در سایت رسمی یک انجمن فارسیزبان وجود دارد، اما ترجمهها در همه زبانها کامل نیستند. به همین دلیل در این مقاله نام بلوکها را به همان شکل انگلیسی نوشتهایم تا با هر نسخهای بتوانید ردشان را بگیرید.
چند چیز که در هر پنج بازی لازم میشود

صحنه (Stage) ۴۸۰ در ۳۶۰ است و مرکزش نقطه (۰، ۰). یعنی x از منفی ۲۴۰ تا ۲۴۰ و y از منفی ۱۸۰ تا ۱۸۰ میرود. وقتی مینویسیم «برو به y برابر ۱۷۰»، یعنی تقریباً بالای صحنه.
متغیر جایی است برای نگهداشتن یک عدد، مثل امتیاز. از دسته Variables گزینه Make a Variable را بزنید و اسمش را بگذارید، مثلاً score.
همه بازیها با پرچم سبز شروع میشوند. بلوک when green flag clicked اولین بلوک تقریباً هر اسکریپت است. و بلوک forever تا وقتی بازی تمام نشده همان کارها را تکرار میکند.
اسکریپتها را در کادرهای زیر به شکل متن مینویسیم. هر خط معادل یک بلوک است و خطهای تورفته یعنی آن بلوک داخل بلوک بالایی قرار میگیرد.

بازی ۱: گرفتن سیبهای در حال سقوط
ایده: سیب از بالای صحنه میافتد و کودک با موس سبدی را حرکت میدهد تا سیبها را بگیرد. هر سیب گرفتهشده یک امتیاز دارد و سه فرصت اشتباه.
چه چیزی یاد میگیرد: متغیر (score و lives)، عدد تصادفی، و اینکه یک شخصیت میتواند رفتار خودش را بهتنهایی تکرار کند.
دو شخصیت لازم است: Basket (سبد) و Apple (سیب). متغیرهای score و lives را بسازید.
اسکریپت سبد:
when green flag clicked
go to x: 0 y: -140
forever
set x to (mouse x)اسکریپت سیب:
when green flag clicked
set [score] to 0
set [lives] to 3
go to x: (pick random -200 to 200) y: 170
forever
change y by -5
if <touching [Basket]?> then
change [score] by 1
go to x: (pick random -200 to 200) y: 170
if <(y position) < -165> then
change [lives] by -1
go to x: (pick random -200 to 200) y: 170
if <(lives) = 0> then
say [پایان بازی] for 2 seconds
stop [all]بهتر کردنش: یک متغیر speed بسازید، مقدارش را روی «۵ بهاضافه امتیاز تقسیم بر ۵» بگذارید و بهجای عدد ثابت از آن در change y by استفاده کنید. هرچه امتیاز بالاتر برود سیبها تندتر میافتند. این اولین بار است که کودک میبیند یک عدد میتواند بر اساس عدد دیگری تغییر کند.
بازی ۲: ماز
ایده: شخصیتی با کلیدهای جهتنما در یک ماز حرکت میکند. اگر به دیوار برخورد کند به ابتدای ماز برمیگردد و اگر به ستاره برسد برنده است.
چه چیزی یاد میگیرد: شرطهای تودرتو، حرکت با صفحهکلید و برخورد با رنگ.
ماز را در ویرایشگر Paint روی پسزمینه (Backdrop) بکشید. دیوارها را همه با یک رنگ مشخص بکشید. بعد شخصیت Player کوچک و شخصیت Star را به صحنه اضافه کنید.
when green flag clicked
go to x: -200 y: -150
forever
if <key [right arrow] pressed?> then
change x by 3
if <key [left arrow] pressed?> then
change x by -3
if <key [up arrow] pressed?> then
change y by 3
if <key [down arrow] pressed?> then
change y by -3
if <touching color [رنگ دیوار]?> then
go to x: -200 y: -150
if <touching [Star]?> then
say [آفرین! رسیدی] for 2 seconds
stop [all]بلوک touching color را با قطرهچکان (eyedropper) روی همان رنگ دیوار تنظیم کنید. اگر رنگ بازیکن و دیوار شبیه هم باشد بازی عجیب رفتار میکند، پس رنگها را متفاوت انتخاب کنید.
بهتر کردنش: مرحله دوم با ماز سختتر، یا یک شخصیت دشمن که بین دیوارها حرکت میکند.
بازی ۳: مسابقه سؤالوجواب
ایده: برنامه چند سؤال ساده، مثلاً ضرب یا اطلاعات عمومی، میپرسد و کودک جواب مینویسد. جواب درست امتیاز دارد.
چه چیزی یاد میگیرد: تفاوت ورودی و خروجی، شرط «اگر... وگرنه»، و اینکه برنامه میتواند با کاربر گفتوگو کند. این بازی برای کودکانی که از اکشن خوششان نمیآید جذاب است.
when green flag clicked
set [score] to 0
ask [۷ × ۸ چند میشود؟] and wait
if <(answer) = 56> then
change [score] by 1
say [آفرین!] for 2 seconds
else
say [نه، جواب ۵۶ است] for 2 seconds
ask [پایتخت ایران کجاست؟] and wait
if <(answer) = [تهران]> then
change [score] by 1
say [درست گفتی] for 2 seconds
else
say [جواب درست تهران است] for 2 seconds
say (join [امتیاز تو: ] (score)) for 3 secondsیک نکته مهم: اگر کودک عدد را با ارقام فارسی (مثل ۵۶) تایپ کند، ممکن است اسکرچ آن را با عدد ۵۶ لاتین برابر نداند. این را روی کامپیوتر خودتان امتحان کنید؛ اگر مشکل داشت، به کودک بگویید عدد جواب را با ارقام انگلیسی بنویسد یا سؤال را طوری بپرسید که جوابش کلمه باشد.
بهتر کردنش: سؤالها را در یک لیست (List) بگذارید تا بهجای تکرار بلوکها، یک حلقه همه را بپرسد.
بازی ۴: توپ و راکت
ایده: یک توپ در صحنه حرکت میکند و راکتی که با موس حرکت میکند آن را برمیگرداند. اگر توپ از پایین صحنه رد شود، بازی تمام میشود.
چه چیزی یاد میگیرد: جهت حرکت (direction) و اینکه برخورد دو شخصیت چطور تشخیص داده میشود.
دو شخصیت Ball و Paddle بسازید.
اسکریپت راکت:
when green flag clicked
go to x: 0 y: -150
forever
set x to (mouse x)اسکریپت توپ:
when green flag clicked
set [score] to 0
go to x: 0 y: 50
point in direction (pick random 135 to 225)
forever
move 6 steps
if <(y position) < -170> then
say [باختی] for 2 seconds
stop [all]
if <touching [Paddle]?> then
point in direction ((180) - (direction))
move 10 steps
change [score] by 1
if on edge, bounceجهت در اسکرچ به این شکل است: ۰ بالا، ۹۰ راست، ۱۸۰ پایین و ۹۰- چپ. فرمول «۱۸۰ منهای جهت فعلی» توپ را از یک سطح افقی مثل راکت برمیگرداند. خط move 10 steps بعد از برخورد لازم است، چون اگر توپ داخل راکت بماند، اسکرچ هر لحظه دوباره برخورد را میبیند و توپ گیر میکند.
بهتر کردنش: با هر برخورد کمی سرعت توپ را زیاد کنید، یا یک راکت دوم برای بازیکن دوم بگذارید.
بازی ۵: پرش از مانع
ایده: یک شخصیت روی زمین ایستاده و با زدن کلید فاصله میپرد. مانعها از سمت راست میآیند و اگر به شخصیت بخورند بازی تمام میشود. هر مانعی که رد شود یک امتیاز دارد.
چه چیزی یاد میگیرد: حلقه repeat، حرکت پیوسته و اینکه چند اسکریپت میتوانند همزمان اجرا شوند.
اسکریپت بازیکن، که شخصیتش را روی y برابر ۱۰۰- بگذارید:
when green flag clicked
go to x: -150 y: -100
set [score] to 0
when [space] key pressed
if <(y position) = -100> then
repeat (10)
change y by 12
repeat (10)
change y by -12اسکریپت مانع:
when green flag clicked
go to x: 240 y: -100
forever
change x by -6
if <(x position) < -230> then
go to x: 240 y: -100
change [score] by 1
if <touching [Player]?> then
say [بخورد!] for 2 seconds
stop [all]شرط y position = -100 جلوی پرش دوباره در هوا را میگیرد. اگر مانعها خیلی بلند یا خیلی تند بودند، دو عدد ۱۲ و ۶ را تغییر دهید تا بازی هم سخت باشد و هم قابل بردن.
بهتر کردنش: ارتفاع پرش را با یک متغیر گرانش (gravity) بسازید و مانعهای مختلف با ارتفاعهای متفاوت اضافه کنید.
اگر بازی کار نکرد، اول این چیزها را چک کنید

- اسکریپت روی شخصیت اشتباه است. وقتی بلوکها را میکشید، بالای صفحه ببینید کدام شخصیت انتخاب شده است.
- متغیرها صفر نشدهاند. در ابتدای بازی هر متغیر را set کنید، وگرنه امتیاز بازی قبلی میماند.
- برخورد کار نمیکند. اسکرچ برخورد را با قسمتهای دیدهشده شخصیت میسنجد؛ شخصیتی که فضای شفاف زیادی دارد کمتر برخورد میکند.
- دو اسکریپت با هم دعوا دارند. اگر دو اسکریپت همزمان یک متغیر یا یک موقعیت را تغییر دهند، رفتار عجیب میشود.
- عددها مناسب نیستند. سرعت و فاصلهها را خیلی کمکم تغییر دهید و بعد از هر تغییر بازی را تست کنید.
این آخری یکی از بهترین درسهای برنامهنویسی است: یک تغییر کوچک، یک تست، یک نتیجه.
چند نکته برای والدین و مربیها
- کنار کودک بنشینید، اما جایش نسازید. وقتی گیر کرد، سؤال بپرسید: «فکر میکنی این شخصیت الان چه کاری باید بکند؟»
- تعریف کنید، حتی بازی ناقص. پروژه کوچکی که کار میکند از پروژه بزرگی که ناتمام مانده انگیزه بیشتری میدهد.
- زمان جلسه را کوتاه نگه دارید. معمولاً جلسههای کوتاه و مرتب از یک جلسه طولانی بهتر است؛ البته این نظر ما است و عدد قطعی ندارد.
- درباره اشتراکگذاری صحبت کنید. به کودک بگویید چه چیزی را میتوان به اشتراک گذاشت و چه چیزی را نه، و اطلاعات شخصی نباید در پروژهها باشد.
بعد از این پنج بازی چه؟
وقتی کودک این بازیها را ساخت و تغییرشان داد، بعدیها طبیعی هستند: ساختن شخصیتهای تکثیرشونده با Clone، بلوکهای سفارشی خودش (My Blocks) و بعد گذر به یک زبان متنی مثل پایتون. به مقاله «آموزش پایتون از صفر» هم نگاهی بیندازید اگر کودک شما نوجوان است و آماده تغییر. دورههای آموزش کامپیوتر آراهوش برای هر سطح راهنمایی میدهد.
برنامهنویسی کودکان در درچه با آراهوش

آموزشگاه فنی حرفهای آزاد آراهوش در درچه با مجوز رسمی سازمان آموزش فنی و حرفهای کشور فعالیت میکند. ما کلاس برنامهنویسی کودکان با اسکرچ و تفکر الگوریتمی برای ۸ تا ۱۲ سال داریم. اگر میخواهید بدانید کودک شما در کدام سطح قرار دارد، با ما تماس بگیرید تا مشاوره و ارزیابی سطح بدهیم. درباره آموزشگاه را در درباره آکادمی آراهوش بخوانید و برای مسیر رفتن به آموزشگاه، آدرس آموزشگاه کامپیوتر آراهوش در اصفهان را باز کنید. مقالات دیگر ما در مقالات آموزشی آراهوش هستند.
- آدرس: اصفهان، درچه، خیابان آیتالله درچهای، قبل از کوچه ۶، آموزشگاه آراهوش
- تلفن: ۳۳۷۶۳۳۷۷
- موبایل: ۰۹۹۱۳۰۵۹۲۴۲
- تلگرام، اینستاگرام و ایتا: @arahoosh
سؤالات متداول
کودک من چند ساله باید باشد تا اسکرچ را شروع کند؟ سایت رسمی اسکرچ میگوید برای ۸ تا ۱۶ سال طراحی شده، اما کودک کوچکتر هم میتواند با کمک والدین کار کند. برای ۵ تا ۷ سال نسخه سادهتری به نام ScratchJr وجود دارد.
آیا این بازیها بدون اینترنت قابل ساختن هستند؟ بله، با برنامه آفلاین اسکرچ میتوان بدون اینترنت پروژه ساخت.
اسکرچ رایگان است؟ بله، استفاده از خود اسکرچ رایگان است.
بازی ۳ جواب فارسی را قبول میکند؟ میتواند، اما با ارقام فارسی ممکن است مشکل پیش بیاید؛ روی دستگاه خودتان تست کنید و در صورت لزوم از جواب کلمهای یا ارقام انگلیسی استفاده کنید.
اگر کودک در بازی گیر کرد چه کنم؟ اول از او بخواهید توضیح دهد برنامه چه کاری باید بکند و چه کاری میکند. معمولاً همین توضیح مشکل را پیدا میکند.
آیا اسکرچ واقعاً برنامهنویسی است؟ بله. اسکرچ زبان بلوکی است، اما مفاهیم اصلی مثل شرط، حلقه، متغیر و رویداد را آموزش میدهد که در پایتون و بیشتر زبانهای دیگر هم هستند.
برای شرکت در کلاس آراهوش در درچه چه باید کرد؟ برای ثبتنام و هماهنگی زمان با شمارههای بالا تماس بگیرید یا صفحه دورهها را ببینید.
بعد از اسکرچ چه زبانی را شروع کنیم؟ برای بیشتر کودکان و نوجوانان پایتون ادامه طبیعی است، چون سادهتر و خواناتر از بسیاری زبانهاست. این یک توصیه عمومی است و به علاقه کودک بستگی دارد.
جمعبندی
پنج بازی گرفتن سیب، ماز، سؤالوجواب، توپ و راکت و پرش از مانع، تقریباً همه مفاهیم پایه برنامهنویسی را بدون درس خشک وارد کار کودک میکنند. بگذارید کودک اول همینها را بسازد و بعد خودش تغییرشان بدهد. اگر دنبال کلاس برنامهنویسی کودکان در درچه هستید، با آراهوش تماس بگیرید: ۳۳۷۶۳۳۷۷ یا ۰۹۹۱۳۰۵۹۲۴۲.
منابع
- سایت رسمی اسکرچ: سؤالات عمومی: سن مناسب، نسخه آفلاین و زبانها.
- سایت رسمی اسکرچ: صفحه والدین: بازه سنی و استفاده بدون عضویت در انجمن.