در این سطح، به کمک لورل که شخصیت ماجراجوی بازی است، باید گنجها را جمعآوری کنیم. برای این کار یک بلاک جدید به نام بلاک get برای ما آماده شده است که باید از آن استفاده کنیم. برای جمعآوری تمام گنجها باید ابتدا دو حرکت به راست برویم و گنج را برداریم. دوباره دو حرکت به راست و برداشت گنج و برای بار آخر هم همین کار رو انجام دهیم.
از درسهای قبلی یاد گرفتیم که باید از کار تکراری بپرهیزیم. بنابراین برای جلوگیری از تکرار دستورهای مشابه، از بلاک ریپیت (Repeat) استفاده میکنیم (یک بلاک ریپیت عدد سه که در داخل آن یک دو بلاک راست و یک بلاک get قرار داده شده). در این سطح مفهوم حلقههای تو در تو هنوز معرفی نشده، اما یاد میگیریم که چگونه از حلقهها برای تکرار یکسری از بلاکها استفاده کنیم.
در سطح سوم، مانند سطح دوم که یاد گرفتیم چگونه بلاکهای تکراری را با یک بلاک Repeat جایگزین کنیم، باید به لورل در جمعآوری گنجها کمک دهیم. برای اینکار ابتدا از یک بلاک راست و سپس از یک بلاک ریپیت عدد سه استفاده میکنیم. در داخل بلاک ریپیت، یک بلاک راست و یک بلاک get قرار میدهیم.
با استفاده از تکنیک جلوگیری از استفاده از بلاکهای تکراری و استفاده از بلاک ریپیت، میتوانیم کدهای سادهتر و بهینهتری بنویسیم و از تکرار بیهوده جلوگیری کنیم.
سطح چهارم: تماشای ویدئوی آموزشی
در این سطح، یک ویدئو آموزشی دیگر در مورد تفاوت استفاده از حلقهها در برنامهنویسی و بدون برنامهنویسی بدون استفاده از حلقهها ارائه شده است. همانطور که در ویدئو هم مشخص به کمک حلقهها میتوانیم کدهای ساده، بهینه و خواناتری را بنویسیم. این ویدئو برای سطح پنجم نیز یک راهنمایی ارائه داده است. حتماً این ویدئو را ببینید تا به درک بیشتری از این مفاهیم برسید و بتوانید آنها را در سطوح بعدی به کار بگیرید.
سطح پنجم: محدودیت تعداد بلاکها
در سطح پنجم، ما با محدودیتهایی در تعداد بلاکهای قابل استفاده مواجه میشویم. این محدودیت باعث میشود که یاد بگیریم چگونه از حلقهها برای کاهش تعداد بلاکها و بهینهسازی کد خودمان استفاده کنیم.
در این سطح، باید پنج بار به سمت راست حرکت کنیم و بعد از هر حرکت، گنج را جمعآوری کنیم. استفاده از یک بلاک ریپیت با عدد ۵ کمک میکند تا این کار را با تعداد کمتری بلاک انجام دهیم. فقط توجه داشته باشید که داخل بلاک ریپیت باید از یک بلاک راست و یک بلاک get استفاده کنیم.
سطح ششم: تصحیح کد و رفع اشکال
در این سطح، کد نوشته شده دارای اشتباه و اشکال است که باید آن را تصحیح کنیم. برای پیدا کردن مشکل میتوانیم از درس جلسه هشتم (آموزش دیباگ کردن) استفاده کنیم. با اجرای گام به گام متوجه میشویم که حلقه تکراری که استفاده شده است، به جای ۴ تکرار، ۵ تکرار را انجام میدهد. ما فقط به ۴ بار تکرار نیاز داریم. با تغییر عدد بلاک ریپیت از ۵ به ۴، میتوانیم این مشکل را حل کنیم. سپس در ادامه بعد از بلاک ریپیت بلاک های پایین و get را قرار میدهیم تا برنامهی ما کامل شود.

آموزش حلقهها در برنامهنویسی با کمک سایت code.org
سطح هفتم: استفاده از حلقهها برای بهینهسازی
در این سطح نیز تعداد بلاکهای در دسترس محدودتر شده است و استفاده از حلقهها ضروری است. در اینجا باید از یک بلاک Repeat با عدد ۴ استفاده کنیم و داخل آن یک بلاک چپ و یک بلاک get قرار دهیم. با این روش، میتوانیم گنجها را بهصورت بهینه جمعآوری کنیم. بعد از بلاک ریپیت، بلاک های پایین و get را استفاده میکنیم تا گنجهای پایین را هم بدست آوریم و برنامه کامل شود.
سطح هشتم: تمرین و حل مسئله
در این سطح، ابتدا تلاش کنید خودتان کدنویسی کنید و بعد از آن راهحل را بخوانید. در این سطح، لازم است ۴ بار به سمت چپ حرکت کنیم و گنجها را بگیریم، سپس همین کار را باید ۴ بار به سمت پایین انجام دهیم. استفاده از حلقهها در اینجا نیز برای بهینهسازی کد به کار میآید. کافی است از دو بلاک ریپیت استفاده کنیم. این دو بلاک ریپیت باید به چه صورتی باشند؟ در بخش دیدگاهها با دوستانتان به اشتراک بگذارید.
سطح نهم: تکرار و بهینهسازی
در این سطح، ابتدا باید مشکل کدی که نوشته شده است را حل و سپس کد را کامل کنیم. ابتدا خودتان کد این سطح را بنویسید و سپس ادامه متن را بخوانید. با دیباگ کردن متوجه میشویم دو بلاک ریپیت به درستی قرار داده شده است. در ادامه نیاز هست که لورل ۵ حرکت به راست برود و بعد از هر حرکت گنجها را جمع کند. پس یک بلاک رپیت عدد ۵ قرار میدهیم و در داخل آن از یک بلاک راست و یک بلاک get استفاده میکنیم.
سطح دهم: تمرین استفاده از حلقهها
به عنوان تمرین، این سطح را با استفاده از حلقهها کدنویسی کنید و بلاکهایی که استفاده کردهاید را در بخش دیدگاهها با همه دوستان به اشتراک بگذارید.
راهنمایی: ابتدا لورل باید چهار حرکت به سمت راست برود و بعد از هر حرکت، get انجام دهد. در مرحله دوم، لورل باید سه حرکت به سمت بالا برود و بعد از هر حرکت، گنج را جمعآوری نماید، و در نهایت برای حرکت آخر، ۳ بار به چپ برود و گنجها را جمع کند.
سطح یازدهم: معرفی حلقههای تو در تو
یک چالش در این سطح برای ما در نظر گرفته شده است. ابتدا خودتان چالش را حل کنید و سپس راهحل را بخوانید. در این سطح، باید یک حرکت پلکانی انجام دهیم. باید دو بار به راست و سپس دو بار به بالا حرکت کنیم و در هر حرکت، گنجها را جمعآوری نماییم. با هدف جلوگیری از تکرار، برای حرکت راست، یک بلاک ریپیت عدد دو که درون آن از یک بلاک راست و یک بلاک get استفاده شده است، قرار میدهیم. برای حرکت به بالا هم از یک بلاک ریپیت عدد ۲ استفاده میکنیم.
با این دو حلقهی ریپیت به لورل کمک کردهایم که یک پلکان را بپیماید. برای اینکه لورل تمام گنجها را بدست آورد، دو پلکان دیگر هم باید طی کند. پس برای طی کردن دو پلکان دیگر، نیاز به بلاکهای تکراری مانند پلکان اول داریم. برای اینکار بهتر است از یک بلاک ریپیت عدد ۳ استفاده کنیم و دو بلاک ریپیت پلکان اول را داخل آن قرار دهیم.
در واقع یک بلاک ریپیت را داخل بلاک ریپیت دیگر مورد استفاده قرار دادهایم. به این دو بلاک ریپیت یا حلقه که تو در تو استفاده شده است، حلقههای تو در تو (nested loop) میگویند. میتوانید از حلقههای تو در تو برای بهینهسازی کد استفاده کنید و تعداد بلاکها را کاهش دهید. با ترکیب دو بلاک ریپیت و قرار دادن یکی در داخل دیگری، میتوان تعداد زیادی از حرکات را با تعداد کمی بلاک انجام داد. این مهارت یکی از اصول کلیدی در برنامهنویسی با حلقهها است.
در این سطح ما مجازیم از ۱۹ بلاک استفاده کنیم. با استفاده از حلقههای تو در تو توانستیم فقط با ۸ بلاک برنامه را کامل کنیم که این خیلی عالی است. آیا میتوانید بدون استفاده از حلقههای تو در تو و تنها با ۹ بلاک برنامه را کامل کنید؟ چطوری؟ در بخش دیدگاهها برایمان بنویسید.

آموزش حلقههای تو در تو در برنامهنویسی با کمک سایت code.org
سطح دوازدهم: استفاده بهینه از بلاکها
در این سطح، ما باید دو بار به راست، پنج بار به پایین و دو بار دیگر به راست حرکت کنیم و بعد از هر حرکت، گنجها را جمعآوری نماییم. برای بهینهسازی کد، از بلاک ریپیت استفاده میکنیم تا تعداد بلاکها به حداقل برسد. آیا این سطح را میتوان با حلقههای تو در تو حل کرد؟
راهحل: ابتدا یک بلاک ریپیت عدد دو را که داخل آن از یک بلاک راست و یک بلاک get استفاده شده است، قرار میدهیم. سپس یک بلاک ریپیت عدد ۵ را که داخل آن از یک بلاک پایین و یک بلاک get بهره بردهایم، استفاده میکنیم. در آخر نیز عیناً بلاک ریپیت اول را مجدد مینویسیم.
سطح سیزدهم: تمرین برنامهنویسی با حلقهها
در سطح سیزدهم، شما باید تمام مهارتهایی که از حلقهها و حلقههای تو در تو یاد گرفتهاید را به کار بگیرید. در این سطح، لازم است که خودتان کدنویسی را انجام دهید و سپس نتیجه را با دیگران در بخش دیدگاهها به اشتراک بگذارید.
سطح چهاردهم: چالش نهایی
در آخرین سطح از درس هفتم، باید به لورل کمک کنیم تا جایی که میتواند، گنجها رو جمع کند. برای تایید این سطح حتی بدست آوردن یک گنج کافی است اما باید تلاش کنیم تمام گنجها را جمعآوری نماییم. پس برای این کار ابتدا از شما میخواهیم که فکر کنید و ایدههای خلاقانهی خودتان را در بخش دیدگاهها بنویسید.
راه کار پیشنهادی ما به شکل زیر هست:

استفاده از حلقههای تو در تو در برنامهنویسی
برای حل مسئلهی این سطح، راهحل بهتری با ۱۱ بلاک هم قابل انجام هست. در بخش دیدگاهها به ترتیب بنویسید چطوری میتوانیم اینکار را انجام دهیم؟
جمعبندی: اهمیت حلقههای تو در تو در برنامهنویسی کودکان
در پایان درس هفتم از سایت Code.org، با مفاهیم حلقههای تو در تو آشنا شدیم و میتوانیم از این مفهوم برای بهینهسازی برنامهنویسی خودمان استفاده کنیم. آموزش برنامهنویسی کودکان با استفاده از سایت Code.org و این نوع تمرینها میتواند درک عمیقتری از مفاهیم برنامهنویسی ایجاد کند و خلاقیت کودکان را در حل مسائل پیچیده افزایش دهد. استفاده از حلقههای تو در تو یکی از مهارتهای کلیدی در برنامهنویسی است که به ما کمک میکند تا کدهای بهینهتری بنویسیم و مشکلات پیچیده را با روشهای سادهتری حل کنیم.
اگر سوالی دارید، میتوانید آن را در بخش دیدگاهها در پایین صفحه مطرح کنید. تیم همراه کانور آماده است تا به تمامی سوالات شما پاسخ دهد و در مسیر یادگیری برنامهنویسی به شما کمک کند.