أعرف أكثر

الفصل 1: تقديم كاريل الروبوت


في سبعينيات القرن العشرين ، قرر طالب دراسات عليا في جامعة ستانفورد يدعى ريتش باتيس أن يكون من الأسهل تدريس أساسيات البرمجة إذا كان الطلاب يمكنهم بطريقة ما تعلم الأفكار الأساسية في بيئة بسيطة خالية من التعقيدات التي تميز معظم لغات البرمجة. صمم ريتش بيئة برمجة تمهيدية يقوم فيها الطلاب بتدريس الروبوت لحل المشكلات البسيطة. سمي هذا الروبوت كاريل ، بعد الكاتب المسرحي التشيكي كاريل Čapek ، الذي لعب عام 1923 RUR ( الروبوتات روسوم العالمي ) أعطى كلمة روبوت للغة الإنجليزية.

كاريل روبوت نجاحا كبيرا. تم استخدام كاريل في دورات تمهيدية لعلوم الكمبيوتر في جميع أنحاء العالم وتم تدريسها لملايين الطلاب. تعلمت أجيال عديدة من طلاب جامعة ستانفورد كيف تعمل البرمجة مع كاريل ، وما زالت مقدمة لطيفة للترميز المستخدمة في جامعة ستانفورد.

ما هو كاريل ؟

كاريل هو روبوت بسيط للغاية يعيش في عالم بسيط للغاية. من خلال إعطاء كاريل مجموعة من الأوامر ، يمكنك توجيهها لأداء مهام معينة في عالمها. تسمى عملية تحديد تلك الأوامر برمجة . في البداية ، يفهم كاريل عددًا صغيرًا جدًا من الأوامر المحددة مسبقًا ، ولكن جزءًا مهمًا من عملية البرمجة هو تعليم كاريل أوامر جديدة تعمل على توسيع قدراتها.

برامج كاريل لها نفس البنية وتتضمن نفس العناصر الأساسية جافا ، أساسي لغة برمجة . الفرق الحاسم هو أن لغة البرمجة في كاريل صغيرة للغاية ، وبالتالي فإن التفاصيل سهلة للإتقان. ومع ذلك ، سوف تكتشف أن حل مشكلة ما قد يكون تحديًا.

من خلال البدء بـ كاريل ، يمكنك التركيز على حل المشكلات من البداية. حل المشكلات هو جوهر البرمجة. ولأن كاريل يشجع الخيال والإبداع ، يمكنك الاستمتاع بالكثير من المرح على طول الطريق.

كاريل

كاريل يعرف الصورة العالم من خلال الصفوف جري أفقيا (الشرق والغرب) والأعمدة جري عموديا (الشمال والجنوب). يسمى تقاطع الصف والعمود بالزاوية. يمكن وضع كاريل فقط على الزوايا ويجب أن يواجه أحد اتجاهات البوصلة الأربعة القياسية (الشمال والجنوب والشرق والغرب). عينة كاريل العالم هو مبين أدناه. هنا كاريل يقع في زاوية الصف الأول والعمود الأول ، باتجاه الشرق.

يمكن رؤية العديد من المكونات الأخرى كاريل في هذا المثال. الكائن أمام كاريل هو مخروط . كما هو موضح في كتاب Rich Pattis ، فإن مخروط s عبارة عن "مخروط من البلاستيك ينبعث منه صوت كاريل هادئ." كاريل لا يمكن إلا اكتشاف مخروط إذا كان في نفس الزاوية. الخطوط الصلبة في المخطط هي الجدران. الجدران بمثابة حواجز داخل العالم كاريل . كاريل لا يستطيع المشي عبر الجدران ويجب أن يتجول فيها. كاريل محاط دائمًا بجدران بطول الحواف ، ولكن قد يكون للعالم أبعاد مختلفة وفقًا للمشكلة المحددة التي يحتاج كاريل إلى حلها.

أوامر كاريل

عندما يتم شحن كاريل من المصنع ، فإنه يستجيب لمجموعة صغيرة جدًا من الأوامر:
أمروصف
move(); يطلب كاريل إلى move كتلة واحدة إلى الأمام. كاريل لا يمكن الرد على move() أمر إذا كان هناك جدار حجب طريقها.
turnLeft(); يطلب كاريل لتدوير 90 درجة إلى اليسار (عكس اتجاه عقارب الساعة).
pickBeeper(); يطلب كاريل لالتقاط مخروط واحد من زاوية ويخزن مخروط في حقيبة مخروط ، والتي يمكن أن تحمل عدد لا حصر له من مخروط ثانية. كاريل لا يمكن الرد على pickBeeper() الأمر ما لم يكن هناك مخروط في الزاوية الحالية.
putBeeper(); يطلب كاريل لأخذ مخروط من حقيبة مخروط ووضعها في الزاوية الحالية. كاريل لا يمكن الرد على putBeeper() الأمر ما لم يكن هناك مخروط ق في حقيبة مخروط .

لنجرب الأوامر. استخدم أزرار رفع الصوت عاليا للحصول على "العالم" لمطابقة "الهدف":

العالمية:
هدف:

الزوج الفارغ من الأقواس الذي يظهر في كل من هذه الأوامر هو جزء من بناء الجملة المشترك بواسطة كاريل و Java ويستخدم لتحديد استدعاء الأمر. في النهاية ، ستشمل البرامج التي تكتبها معلومات إضافية في الفراغ بين الأقواس ، لكن هذه المعلومات ليست جزءًا من العالم البدائي كاريل . ستكون هذه الأقواس فارغة في برامج كاريل القياسية ، لكن يجب أن تتذكر تضمينها مع ذلك.

إذا حاول كاريل القيام بشيء غير قانوني ، مثل التنقل عبر الحائط أو التقاط مخروط غير موجود ، تحدث حالة خطأ.

أوامر كاريل ، لا تنفذ من تلقاء نفسها. بدلاً من ذلك ، تحتاج إلى دمجها في برنامج كاريل . سيكون لديك فرصة لرؤية بعض برامج كاريل البسيطة في الفصل 2!


الفصل التالي