الجزء الثاني من حقيبة GridWorld الدراسية تستخدم مقومات لم نرها حتى الآن، لذا سنلقي نظرة سريعة الآن وستحصل على المزيد من التفاصيل لاحقاً. للتذكير فقط، يمكنك الحصول على وثائق أصناف GridWorld من http://thinklikecs.webs.com/resources/javadoc/gridworld.
عندما تنصب GridWorld، يجب أن تحصل على مجلد باسم boxBug داخل المجلد projects، يحتوي على BoxBug.java، BoxBugRunner.java، وBoxBug.gif.
انسخ هذه الملفات إلى مجلد عملك واستوردهم إلى بيئة البرمجة لديك. توجد تعليمات هنا قد تساعدك: http://www.collegeboard.com/prod_dow...tion_guide.pdf
(توجد نسخة مترجمة من هذه التعليمات على: http://thinklikecs.webs.com/resource...tion_guide.pdf)
هذه هي الشفرة من BoxBugRunner.java:
كود:
import info.gridworld.actor.ActorWorld;
import info.gridworld.grid.Location;
import java.awt.Color;
 
public class BoxBugRunner {
   public static void main(String[] args) {
      ActorWorld world = new ActorWorld();
      BoxBug alice = new BoxBug(6);
      alice.setColor(Color.ORANGE);
      BoxBug bob = new BoxBug(3);
      world.add(new Location(7, 8), alice);
      world.add(new Location(5, 5), bob);
      world.show();
   }
}
يجب أن يكون كل شيء هنا مألوفاً، ما عدا Location ربما، وهو جزء من GridWorld، يشبه java.awt.Point.
يحتوي BoxBug.java على تعريف الصنف BoxBug.
كود:
public class BoxBug extends Bug {
   private int steps;
   private int sideLength;
 
   public BoxBug(int length) {
      steps = 0;
      sideLength = length;
   }
}
يقول السطر الأول أنه يوسّع (extends) Bug، ما يعني أن BoxBug هو من نوع Bug.
السطرين التاليين هما متغيري حالة. لكل حشرة (كائن Bug) متغيرين باسم sideLength، يحدد حجم الصندوق الذي ترسمه، وsteps، الذي يحتفظ بعدد الخطوات التي تحركتها الحشرة.
يعرف السطر التالي عملية بناء (أو باني constructor)، وهي عملية خاصة تهيئ متغيرات الحالة. عندما تصنع حشرة باستدعاء new، تستدعي Java هذا الباني.
يستخدم معامل الباني لتهيئة sideLength (المسافة الجانبية).
تتحكم العملية act بسلوك الحشرة. ها هي العملية act للصنف BoxBug:
كود:
public void act() {
   if (steps < sideLength && canMove()) {
      move();
      steps++;
   }
   else {
      turn();
      turn();
      steps = 0;
   }
}
إذا كانت BoxBug (حشرة الصندوق) قادرة على الحركة، ولم تصل بعد للعدد المطلوب من الخطوات، ستتحرك وتزيد steps.
إذا ارتطمت بجدار أو أنهت أحد جوانب الصندوق، ستستدير بزاوية 90 درجة على اليمين وتعيد ضبط steps إلى 0.
شغل البرنامج وشاهد ماذا يفعل. هل حصلت على السلوك المتوقع منه؟

تمرين 10.1

الآن أصبحت تعرف ما يكفي لحل التمارين الموجودة في دليل الطالب، الجزء 2. اذهب إليها، ثم عد إلى هنا لمزيد من المرح.