موضوع قبلی

3. بازگشت بیشتر

موضوع بعدی

متغیّرها

4. حساب کردن روی بازگشت

ریبرگ می‌داند چطور بشمارد؛ ولی... هنوز این کار را ندیده‌ایم و تا مدّتی هم نخواهیم دید. اگر به غیر از چیزی که این‌جا یادگرفتید کمی پایتون بدانید، احتمالاً از قبل می‌بایست بدانید که چطور کاری کنید که ریبرگ با متغیّرهای عددی بشمارد. با این وجود، از شما می‌خواهم از این دانش خود برای مواردی که در ادامه می‌آید استفاده نکنید.

محیط نشانه‌های ۵ را در محیط ریبرگ انتخاب کنید. در جایی که ریبرگ ایستاده یک نشانه هست. شما از قبل می‌دانید چطور کاری کنید که ریبرگ آن نشانه را بردارد و به مربّع بعدی برود. از شما می‌خواهم این کار را بکنید و کاری کنید که ریبرگ این دو گام را آن قدر تکرار کند که به جایی برسد که نشانه‌ای نباشد. سپس، ریبرگ باید همهٔ نشانه‌هایی را که جمع کرده را در آن مربّع خالی کند و به مربّع بعدی برود.

دقیقاً همین برنامه باید با محیط نشانه‌های ۶ می‌بایست کار کند- که تعداد نشانه‌هایش فرق می‌کند. بنابراین، از آن‌جایی که تعداد تکرارهای ثابتی ندارید، نمی‌توانید از repeat استفاده کنید.

ریبرگ با تعداد بی‌نهایت نشانهٔ داخل جیبش شروع می‌کند. بنابراین، نمی توانید از carries_object() استفاده کنید تا بفهمید کی و کجا انداختن نشانه‌ها را در جایی که ایستاده متوقّف کند.

امتحانش کن!

از بازگشت برای نوشتن یک راه حل برای این مشکل استفاده کنید. طرح کلّی یک راه حلّ این‌جا قرار دارد:

def collect(): # تعریف جمع‌آوری
    # یک کار
    #یک کار
    if some_condition: # یک شرط
        #یک کار
    #یک کار

collect()
move()

چالش‌های پر بازگشت

همهٔ چالش‌های قبلی را مرور کنید و سعی کنید به جای استفاده از حلقه‌های while برایشان با بازگشت راه‌حل‌های تازه‌ای بنویسید.