פרויקט מתגלגל – תרגיל 3
מטרות התרגיל:
- מימוש Decorator Pattern.
- מימוש בדיקות יחידה ב JUnit.
- עבודה פשוטה עם Threads.
- תשתית לחלק הבא.
סרטון דוגמת ריצה.
(אדום = איחור, לפני הקנס)
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 לאחר שנייה אחת
וכו'.