دستور «مورب» در روبی: یک قدم قطری
ربات روبی علاوه بر جلو و عقب، میتواند یک خانه بهصورت قطری هم برود؛ بدون اینکه بچرخد.
دستور مورب چه کار میکند؟
چهار دستور مورب داریم که نسبت به جهت نگاه روبی تعریف میشوند: جلو-راست، جلو-چپ، عقب-راست و عقب-چپ. هر کدام روبی را یک خانه قطری جابهجا میکند و جهت نگاهش همان قبلی میماند.
خانهی مقصد باید داخل نقشه، بدون مانع سفت و بدون آب باشد. یک قانون اضافه هم هست: اگر هر دو خانهی کنار مسیر قطری دیوار یا بیرون از نقشه باشند، گوشه بسته است و روبی نمیتواند از لای آن رد شود. در همهی این حالتها روبی به مانع میخورد و برنامه ادامه پیدا میکند.
شکل بلوکی و شکل کد
در جعبهابزار فقط یک بلوک «↗ مورب» هست و جهتش روی خود بلوک بین ↗، ↖، ↘ و ↙ عوض میشود. این بلوک در همهی جعبهابزارها در دسترس است. در حالت کد هم مثل جلو میتوان عدد داد، مثلا forwardRight(2).
- ✅ ↗ جلو-راست: forwardRight یا جلو_راست
- ✅ ↖ جلو-چپ: forwardLeft یا جلو_چپ
- ✅ ↘ عقب-راست: backRight یا عقب_راست
- ✅ ↙ عقب-چپ: backLeft یا عقب_چپ
یک مثال کوچک با ربات روبی
هدف سه خانه جلو و سه خانه سمت راست روبی است. با جلو و چرخش، برنامه شش قدم و یک چرخش دارد. با مورب کافی است بنویسیم forwardRight(3)؛ روبی روی قطر حرکت میکند و همچنان رو به جلوست.
اشتباههای رایج
چون جهتهای مورب نسبت به نگاه روبی است، اگر روبی رو به پایین صفحه باشد، جلو-راست او به سمت پایین و چپ صفحه میرود.
- ✅ انتظار اینکه مورب روبی را بچرخاند
- ✅ تلاش برای رد شدن از گوشهای که هر دو طرفش دیوار است
- ✅ انتخاب فلش اشتباه روی بلوک مورب
در کدام درسها و لیگها استفاده میشود؟
حرکت مورب بیشتر در مرحلههای داستانی و تمرینهای آزاد به کار میآید و برای کوتاه کردن مسیرهای پلهای درس ۳ «راه پیچدار» یک راه دوم است. معلم میتواند بعد از حل یک مسیر با جلو و چرخش، از کودک بخواهد همان را با مورب کوتاهتر کند.
نکته برای والدین و معلم
مورب فرصت خوبی برای مقایسهی دو راهحل است: کدام برنامه کوتاهتر است؟ کدام خواناتر؟ این گفتوگو کودک را با معیار طلایی روبی آشنا میکند: راهحل کوتاهتر و عمومیتر بهتر است.
سوالهای پرتکرار
آیا روبی بعد از حرکت مورب میچرخد؟
نه. روبی یک خانه قطری جابهجا میشود و جهت نگاهش تغییر نمیکند.
چرا روبی از یک گوشه رد نشد؟
اگر هر دو خانهی کنار مسیر قطری دیوار یا بیرون از نقشه باشند، گوشه بسته است و عبور ممکن نیست.
آیا میتوان چند خانه مورب رفت؟
بله. در کد با عدد داخل پرانتز، مثلا forwardRight(3).