التفسير الموسع
يمكن برمجة الروبوت لتحريكه حول المنصة وتلوينها باللون الأبيض والتقاط الجوهرة ثم إنهاء البرنامج باستخدام أكثر من أمر مشاهدة في الأمر الشرطي كالتالي:
الخطوة الأولى: نبدأ بتحديد متغيرات البرنامج، وهي:
x
: الإحداثي السيني لروبوت
y
: الإحداثي الصادي لروبوت
color
: لون الروبوت
jewel_found
: متغير منطقي يشير إلى ما إذا تم العثور على الجوهرة أم لا
الخطوة الثانية: نقوم بتحريك الروبوت حول المنصة باستخدام الأوامر التالية:
while (true) { // احصل على الإحداثيات الحالية للروبوت x = watch("x"); y = watch("y");
// إذا كان الروبوت يقع في أحد أركان المنصة، فانتقل إلى الزاوية التالية if (x == 0 && y == 0) { turnLeft(); } else if (x == 0 && y == width) { turnRight(); } else if (x == width && y == 0) { turnLeft(); turnLeft(); } else if (x == width && y == height) { turnRight(); turnRight(); }
// ارسم مربعًا باللون الأبيض color("white"); drawSquare(20);
// تحقق مما إذا كان الروبوت قد عثر على الجوهرة if (watch("jewel") == "true") { jewel_found = true; } }
تؤدي هذه الأوامر إلى تحريك الروبوت حول المنصة في مسار مربع. في كل زاوية، يرسم الروبوت مربعًا باللون الأبيض.
الخطوة الثالثة: نتحقق مما إذا كان الروبوت قد عثر على الجوهرة باستخدام الأمر الشرطي التالي:
if (jewel_found == true) {
// إذا تم العثور على الجوهرة، فانتهي من البرنامج
end();
}
إذا تم العثور على الجوهرة، فسينتهي البرنامج.
المثال
فيما يلي مثال على تنفيذ البرنامج:
x = 0; y = 0; color = "black"; jewel_found = false;
while (true) { // احصل على الإحداثيات الحالية للروبوت x = watch("x"); y = watch("y");
// إذا كان الروبوت يقع في أحد أركان المنصة، فانتقل إلى الزاوية التالية if (x == 0 && y == 0) { turnLeft(); } else if (x == 0 && y == width) { turnRight(); } else if (x == width && y == 0) { turnLeft(); turnLeft(); } else if (x == width && y == height) { turnRight(); turnRight(); }
// ارسم مربعًا باللون الأبيض color("white"); drawSquare(20);
// تحقق مما إذا كان الروبوت قد عثر على الجوهرة if (watch("jewel") == "true") { jewel_found = true; } }
if (jewel_found == true) { // إذا تم العثور على الجوهرة، فانتهي من البرنامج end(); }
في هذا المثال، يبدأ الروبوت في الزاوية العلوية اليسرى للمنصة باللون الأسود. ثم يتحرك حول المنصة في مسار مربع، ويرسم مربعًا باللون الأبيض في كل زاوية. إذا وجد الروبوت الجوهرة، فسينتهي البرنامج.
التحليل
يستخدم هذا البرنامج أمر المشاهدة watch()
لتحديد الإحداثيات الحالية للروبوت ولونه. يستخدم الأمر الشرطي if()
لتحديد ما إذا كان الروبوت يقع في أحد أركان المنصة. إذا كان الأمر كذلك، فسيستخدم الروبوت الأمر turnLeft()
أو turnRight()
للانتقال إلى الزاوية التالية.
يستخدم هذا البرنامج أيضًا أمر المشاهدة watch()
لتحديد ما إذا كان الروبوت قد عثر على الجوهرة. إذا تم العثور على الجوهرة، فسيستخدم الروبوت الأمر end()
لإنهاء البرنامج.