پروژه 1: تایمر واکنش فضانورد
حالا که با نحوه کار با Scratch آشنا شدید، وقت آن است که سراغ پروژههای کمی تعاملیتر برویم: یک تایمر واکنش که بهافتخار فضانورد بریتانیایی، تیم پیک و زمانی که در ایستگاه فضایی بینالمللی بود، طراحی شد.
قبل از اینکه پروژه جدید را شروع کنید، برنامه فعلی را ذخیره کنید. برای شروع پروژه جدید، از منوی File روی گزینه New کلیک کنید. یک نام به پروژه جدید اختصاص دهید. برای این کار مجدداً سراغ منوی File بروید و روی گزینه Save to your computer کلیک کنید. حال اسم پروژه را Astronaut Reaction Timer بگذارید.
این پروژه مبتنی بر دو تصویر است: یکی بهعنوان پسزمینه صحنه و یکی هم اسپرایت – که در منابع اسکرچ وجود ندارند. برای دانلود آنها میتوانید بر روی آیکون توتفرنگی کلیک کنید تا منوی سیستمعامل Raspberry Pi لود شود. سپس نشانگر ماوس را روی Internet قرار دهید و بعد روی مرورگر وب Chromium کلیک کنید. وقتی مرورگر لود شد، آدرس زیر را در نوار آدرس تایپ کرده و کلید ENTER را فشار دهید.
سپس روی تصویری که از فضا میبینید، کلیک راست کنید و بر روی Save image as کلیک کنید. بعد روی دکمه Save بزنید (شکل زیر). سپس دوباره در نوار آدرس کلیک کنید و آدرس زیر را تایپ کنید و کلید ENTER را فشار دهید.

تصویر پسزمینه را ذخیره کنید
دوباره بر روی تصویر تیم پیک کلیک راست کنید و سپس گزینه Save image as انتخاب کنید. سپس فولدر Downloads را انتخاب کنید و روی دکمه ذخیره بزنید. پس از آن میتوانید مرورگر Chromium را ببندید یا آن را باز نگه دارید و سپس از طریق تسک بار/ نوار وظیفه به Scratch 3 بازگردید.
اگر از ابتدای این فصل همراه ما بودهاید، احتمالاً با رابط کاربری Scratch 3 آشنا هستید. برای ادامه کار و اجرای دستورالعملهای پروژه باید با این رابط کاربردی آشنا باشید. اگر با رابط کاربری آشنا نیستید یا چیزی را فراموش کردهاید، به تصویر رابط کاربری در ابتدای فصل مراجعه کنید تا مطمئن شوید که میتوانید بهراحتی بخشهای مختلف را پیدا کنید و از آنها استفاده کنید.
روی اسپرایت (گربه) راست کلیک کنید و گزینه delete را انتخاب کنید. سپس موس را روی آیکون
Choose a Backdrop قرار دهید و از لیستی که ظاهر میشود، روی آیکون
Upload Backdrop کلیک کنید. فایل Space-background.png را در فولدر Downloads پیدا کنید، روی آن کلیک کنید تا انتخاب شود، سپس روی OK بزنید. پسزمینه سفید ساده به یک تصویر از فضا تغییر خواهد کرد (شکل زیر). میتوانید روی پسزمینه چیزی ترسیم کنید، اما فعلاً لازم نیست کار دیگری انجام دهید، بنابراین روی تب Code در بالای پنجره Scratch 3 کلیک کنید.

عکس فضا جایگزین پسزمینه قبلی میشود.
نشانگر ماوس روی آیکون
Choose a Sprite نگه دارید و سپس بر روی آیکون
Upload Sprite که در بالای لیست خواهید دید، کلیک کنید. سپس فایل Astronaut-Tim.png را در فولدر Downloads پیدا و روی آن کلیک کنید تا انتخاب شود و سپس بر روی OK بزنید. پس از آن اسپرایت بهصورت خودکار نمایش داده میشود؛ اما ممکن است وسط نباشد. اگر اینطور بود، روی آن کلیک کنید و با درگکردن سعی کنید آن را پایین وسط قرار دهید. (شکل زیر).

اسپرایت فضانورد را به سمت پایین وسط بکشید
حال با پسزمینه و اسپرایت جدید آمادهی ساخت یک برنامه جدید هستید. کار را با ساخت یک متغیر جدید به نام time شروع کنید و مطمئن شوید که گزینه For all sprites قبل از اینکه روی OK کلیک کنید، انتخاب شده باشد. برای انتخاب اسپرایت، روی آن کلیک کنید. سپس از دستهبندی Events، یک بلوک when
clicked انتخاب و به ناحیه کد منتقل کنید. بعد از دستهبندی Looks، یک بلوک say Hello! for 2 seconds اضافه کنید. پس از آن روی متن بلوک کلیک کنید و آن را با متن زیر جایگزین کنید:
Hello! British ESA Astronaut Tim Peake here. Are you ready?

از دستهبندی Control، wait 1 seconds را انتخاب و اضافه کنید. همین کار را برای بلوک say Hello! انجام دهید. متن این بلوک را به say Hit Space! تغییر دهید. سپس از دستهبندی Sensing، بلوک reset timer را انتخاب و اضافه کنید. این بلوک در واقع یک متغیر خاص در Scratch که برای زمانبندی استفاده میشود را کنترل میکند. این متغیر برای سنجش سرعت واکنش شما در بازی مورداستفاده قرار میگیرد.

از دستهبندی Control، بلوک wait until را انتخاب و به ناحیه کد اضافه کنید. سپس از دستهبندی Sensing، بلوک key space pressed? را انتخاب و سپس در قسمت سفید بلوک wait until درگ کنید. به این صورت تا زمانی که کلید SPACE روی کیبورد فشار داده شود، برنامه متوقف میشود؛ اما تایمر به کار خود ادامه میدهد. سپس فاصله زمانی دقیق بین وقتی که پیام Hit Space! نمایش داده میشود تا زمانی که شما کلید SPACE را فشار میدهید را محاسبه میکند.

حال تیم باید به شما بگوید که چقدر طول کشید تا کلید SPACE را فشار دهید. برای این منظور باید از دستهبندی Operators، بلوک join را انتخاب کنید. این بلوک دو مقدار که دو متغیر هستند را دریافت میکند. سپس این دو مقدار را به هم مرتبط میکند که به این کار concatenation گفته میشود.
این کار را با انتخاب بلوک say Hello! شروع کنید. سپس بلوک joinاز دستهبندی Operators را انتخاب و روی کلمه Hello! درگ کنید. حال روی apple کلیک کنید و متن Your reaction time was را جایگزین کنید. مطمئن شوید که یک فاصله در انتهای آن اضافه کردهاید. سپس یک بلوک join دیگر را روی کلمه banana در باکس دوم بکشید. بعد یک از دستهبندی Sensing، بلوک timer reporting را انتخاب و روی باکس میانی قرار دهید و عبارت seconds را در باکس آخر تایپ کنید. مجدداً مطمئن شوید که یک فاصله در ابتدای آن درج کردهاید.

در نهایت یک بلوک set my variable to 0 Variables از دستهبندی Variables انتخاب کنید و انتهای توالی فرمانها قرار دهید. از منوی کشویی کنار my variable، گزینه timer را انتخاب کنید. سپس بهجای 0، یک بلوک timer reporting از دستهبندی Sensing بگذارید. حال بازی آماده است و میتوانید آن را تست کنید: روی پرچم سبز در بالا کلیک کنید. آماده باشید و به محض دیدن پیام Hit Space!، کلید SPACE را هر چه سریعتر فشار دهید (شکل زیر). آیا میتوانید رکورد را بشکنید.

زمان بازی کردن است.
میتوانید این پروژه را با محاسبه تقریبی فاصلهای که ایستگاه فضایی بینالمللی در زمان لازم برای فشاردادن کلید SPACE طی کرده (بر اساس سرعت اعلام شده ایستگاه که هفت کیلومتر در ثانیه است) بسط دهید. بدین منظور ابتدا، یک متغیر جدید به نام distance تعریف کنید. توجه کنید که بلوکهای دسته Variables به طور خودکار تغییر میکنند تا متغیر جدید را نشان دهند؛ اما بلوکهای متغیر time به همان شکل باقی میمانند.
یک بلوک set distance to 0 اضافه کنید. سپس از دستهبندی Operators، یک بلوک ● = ● انتخاب کنید و آن را روی عدد 0 بکشید. بعد یک بلوک time reporting را روی فضای خالی اول بکشید و عدد 7 را در جای خالی دوم تایپ کنید. حال بلوک تعریف شده زمانی که طول کشیده تا شما کلید SPACE را فشار دهید در هفت ضرب میکند تا فاصلهای که فضاپیما در این مدت طی کرده را به کیلومتر محاسبه کند.
بلوک wait 1 seconds را اضافه کنید و سپس مقدار آن را به 4 تغییر دهید. در نهایت، یک بلوک say Hello! دیگر را در انتهای توالی فرمانها قرار دهید. بعد از آن دو بلوک join را به همان روش قبل اضافه کنید. در جای خالی اول عبارت In that time the ISS travels around را تایپ کنید. مطمئن شوید که یک فاصله در انتها درج کردهاید. در جای خالی دوم کلمه kilometres را تایپ کنید. فراموش نکنید که یک فاصله در ابتدای آن بگذارید.

در نهایت از دستهبندی Operators یک بلوک round انتخاب و درگ کنید تا در جای خالی میانی قرار بگیرد. سپس بلوک distance reporting را در فضای خالی جدیدی که ایجاد شده قرار دهید. بلوک round اعداد را به نزدیکترین عدد صحیح بالا یا پایین گرد میکند. در نتیجه بهجای یک عدد بسیار دقیق که خواندن آن سخت است، یک عدد صحیح و خوانا را بهعنوان خروجی خواهید داشت.

برای اجرای برنامه، بر روی پرچم سبز کلیک کنید تا ببینید فضاپیما در مدت زمانی که طول میکشد تا شما کلید SPACE را فشار دهید، چه مسافتی را طی میکند. حال میتوانید برنامه را ذخیره کنید تا بتوانید در آینده هم از آن استفاده کنید.

تیم پیک به شما میگوید که فضاپیما چه مسافتی را طی کرده است.
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.