התרגולים המקוריים של Stanford Karel the Robot נמצאים בקישור זה השיעור האחרון שניתן לפתור שם שיעור מספר 8. לאחר מכן יש באגים בתחביר שאינם מאפשרים להתקדם. הלולאות הנתמכות אצלם הן repeat(n)
כאשר n הוא מספר החזרות, ובנוסף while
בתבנית המוכרת לנו.
בשלב די מוקדם של התרגול ב-Karel ניתן להגיע, בלמידה עצמית, לתרגול הדורש לולאות מקוננות. לכן התרגול מתאים לכאן
אני ממליץ לאחר למי שרוצה להכיר תרגילים נוספים לתרגל מ-reborg שכאן. קיימים הבדלים בשמות הפעולות הזמינות לכם ועליכם לגלות את הפעולות הרלוונטיות. לאחר תרגול קודם בגרסת Stanford Karel הרעיון של קריאה לפעולות אמור להיות ברור. התחביר הוא תחביר JavaScript - כלומר מעט שונה מהתחביר שנלמד עבור יצירת פעולת.
למי שקופצים ישר קדימה - חשוב לבצע את פרק 7 לפני פרק 8 כדי להכיר את הפונקציות הזמינות לכם. תודות לסעד עבדל גאפר שהכין את טבלת סיכום הפעולות של. הקוד מאחורי הקלעים הוא ב-JavaScript ולכן שמות הפעולה מתחילים באות קטנה
שימושים נפוצים | הסבר הפעולה | שם הפעולה |
---|---|---|
תנועה במסלול, מעבר בין משבצות | קארל מתקדם משבצת אחת קדימה בכיוון שאליו הוא מסתכל | ()move |
שינוי כיוון, פנייה | קארל מסתובב 90° שמאלה | ()turnLeft |
פנייה ימינה | בשלב בו הפעולה לא זמינה - נאלצים לבצע שלוש קריאות ל־()turnLeft |
()turnRight |
סימון מיקום, השארת עקבות | קארל מניח ביפר במשבצת עליה הוא נמצא | ()putBeeper |
איסוף ביפרים למשימות שונות | קארל מרים ביפר מהמשבצת בה הוא עומד | ()pickBeeper |
בדיקה לפני איסוף/הנחה | בודק אם יש ביפרים במשבצת | ()beepersPresent |
המשך רק אם אין ביפר | בודק שאין ביפרים במשבצת הנוכחית | ()noBeepersPresent |
הימנעות ממכשולים לפני ()move |
בודק אם הדרך קדימה פנויה | ()frontIsClear |
בדיקה לצורך תנאי עצירה | בודק אם הדרך קדימה חסומה | ()frontIsBlocked |
בדיקה לפני מעבר שמאלה, אם אפשרי | בודק אם השמאל פנוי | ()leftIsClear |
שימושי בלולאות ניווט או בפניות | בודק אם הימין פנוי | ()rightIsClear |
התאמת המהלכים הבאים לפי כיוון | בודק אם קארל פונה צפונה | ()facingNorth |
בקרת כיוון בתנועה למטה | בודק אם קארל פונה דרומה | ()facingSouth |
תנועה צפוייה ימינה | בודק אם קארל פונה מזרחה | ()facingEast |
שינוי כיוון במסלולים שמאליים | בודק אם קארל פונה מערבה | ()facingWest |
הסתובבות עד כיוון מסוים | בודק אם קארל לא פונה צפונה | ()notFacingNorth |