פרויקט מתגלגל – תרגיל 3

התרגיל

מטרות התרגיל:

  1. מימוש Decorator Pattern.
  2. מימוש בדיקות יחידה ב JUnit.
  3. עבודה פשוטה עם Threads.
  4. תשתית לחלק הבא.

סרטון דוגמת ריצה.

ציונים

(אדום = איחור, לפני הקנס)

Init type Aibo at 0 0 named azit with all
Init type Aibo at -10 0 named kishta with arm
PutBox at 10 10 named box1
Assign azit with program1.txt
Assign kishta with program2.txt
Simulate 10 seconds
Get azit position
Get kishta position
Simulate 10 seconds
Get azit position
Get kishta position
List robots by distance
Get box1 position
program1.txt

0 Move speed 10 heading 30
10 Move speed 50 heading 45
12 Stop
13 Pickup box1
14 Move speed 15 heading 330
34 Stop
35 PutBoxDown

program2.txt

0 Move speed 15 heading 20
10 Stop
36 Pickup box1
37 Move speed -10 heading 30
47 Stop
48 PutBoxDown

שאלות נפוצות \ הערות:

1. שאלה: הודעות שגיאה שיוצאות מתוך קובץ התוכנית, האם צריך להדפיס מהיכן נוצרו? תשובה: כן, לדוג' :

program1.txt on azit: 34 S2top
program1.txt on azit: Error: command not found.
2. הגיעו כמה שאלות לגבי הזמנים בסרטון, היתה לנו תוכנית שעשינו עבורה סימולציה ל12 שניות, מדוע הפקודה stop בפנים?
פקודה שניתנת בזמן אפס מתרחשת מייד עם ריצת התוכנית, פקודה שניתנה בזמן 1 תקרה לאחר שנייה אחת וכך הלאה, פקודה שניתנה
בזמן 12 תקרה בדיוק לאחר 12 שניות.
כאשר אנו אומרים לו לבצע סימולציה ל 12 שניות אנו מתכוונים ל12 שניות תמימות – כלומר השנייה ה 12 התחילה, הפקודה של זמן 12 בפנים
ועצרנו אפסילון השנייה לפני השנייה ה 13, כלומר פקודה בזמן 13 לא מתבצעת.
בפעם הבאה שנמשיך את הסימולציה, אז הפקודה בזמן 13 מתרחשת מייד. (בדיוק כמו הפקודה בזמן אפס קודם) ואילו הפקודה בזמן 14 לאחר שנייה אחת
וכו'.