קורס פיתוח בפייתון
פרק
>
רמה

תנאים
הצהרות break ו-continue

מטרה

נקה כמה עשבים בלתי רצויים במעבר בין הבניינים באמצעות תנאי לולאות.

במעבר בין הבניינים צומחים עשבים בלתי רצויים, אסוף את כל העשבים והשלך אותם בעזרת לולאות. קיימות דרכים לאוטומציה של תהליך זה באמצעות תנאי לולאות.

צור משתנה בשם bag והשתמש בו כדי לאחסן את העשבים ככל שתאסוף אותם. השתמש בלולאת while עם תנאים לאוטומציה של התהליך, ישנם עשר (10) עשבים בסך הכל.

while True: player.move_forward() bag += 1 if bag == 10: break

על ידי הגדרת לולאת ה-while כ-True, הלולאה לא תסתיים אלא אם נעשה שימוש באופרייטור break לסיום הלולאה. כל מחזור לולאה מוסיף עשב לתוך bag ובודק כמה עשבים נאספו כדי לסיים את הלולאה. משפט ה-if משמש לבדיקה האם יש לסיים את הלולאה באמצעות break או לא, הוא בודק כמה עשבים נמצאים ב-bag ומפסיק כאשר הכמות הושגה.

לאחר ניווט במעבר, השתמש בלולאת for להשלכת העשבים לתוך מכולות על ידי שימוש בפונקציה place() בנקודות שסומן אות X. מספר הצעדים בין כל מכולה אינו אחיד מאחר וקיים פער ביניהן. באמצעות האופרייטור continue אתה מדלג על מחזור לולאה על ידי בדיקת תנאי באמצעות משפט if.

for x in range(3): player.move_forward() if x == 1: continue player.turn_right() player.place(bag/2) player.turn_left()

בקוד למעלה, משפט ה-if בודק האם x, שהוא מספר מחזורי הלולאה, שווה ל-1. לולאת ה-for רצה שלוש (3) פעמים כפי שמוגדר על ידי range(), כאשר x מתחיל מ-0, כך שהיא רצה עבור הערכים 0, 1, 2 לפני סיום הלולאה. מכיוון שאתה בודק אם מחזור הלולאה הוא 1, הקוד שמתחת ל-continue לא ירוץ אלא ידלג כאשר התנאי מתקיים. בזכות כך, אנו יכולים להימנע מהפער שבין שתי המכולות על ידי דילוג על המחזור האמצעי.

מכיוון שיש שני (2) ארגזים, השתמש בפונקציה place() להשלכת העשבים המאוחסנים במשתנה bag על ידי חלוקת הסך הכולל המונח, כך: player.place(bag/2).

לאחר שאספת והנחת את העשבים במיקום המתאים, גש ליציאה המסומנת בכוכבית כדי להשלים את הרמה.

ספר קוד