Menu
CoddyTech

ספירה באמצעות while

חלק מהיחידה Python בחלון משחק במסלול ה-Pygame של Coddy. שיעור 19 מתוך 32.

לולאת while חוזרת כל עוד התנאי שלה נכון. השתמשו בה כשלא ידוע מראש כמה פעמים צריך לחזור:

radius = 200
rings = 0
while radius > 10:
    pygame.draw.circle(screen, (150, 190, 255), (320, 240), radius, 2)
    radius = radius // 2
    rings = rings + 1

הרדיוס נחצה בכל פעם: 200, 100, 50, 25, 12. // מחלק ומסיר את מה שאחרי הנקודה, ולכן 25 // 2 הוא 12. אחר כך הוא הופך ל־6, התנאי אינו נכון, והלולאה מסתיימת אחרי 5 טבעות. rings סופר אותן. המספר החמישי בקריאה לעיגול, 2, מצייר קו מתאר ברוחב 2 פיקסלים במקום עיגול מלא.

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

challenge icon

אתגר

בינוני

בחלק הציור, החליפו את הטבעת היחידה בלולאת while:

  1. התחילו עם radius = 200 ועם rings = 0.
  2. כל עוד radius > 10: ציירו טבעת מתאר בצבע (150, 190, 255), ברוחב 2, שמרכזה ב-(320, 240); חלקו את הרדיוס ב-2 באמצעות //; הוסיפו 1 ל-rings.
  3. אחרי הלולאה, הציגו את f"Rings: {rings}" בנקודה (20, 20). היא מציגה Rings: 5.

נסו בעצמכם

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# הגדירו כאן את הדברים, לפני לולאת המשחק.
font = pygame.font.Font(None, 36)

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    # שנו כאן דברים, פעם אחת בכל פריים.

    screen.fill((20, 24, 48))
    # ציירו כאן, אחרי מילוי המסך.
    pygame.draw.circle(screen, (150, 190, 255), (320, 240), 200, 2)
    text = font.render("Rings: 1", True, (230, 230, 240))
    screen.blit(text, (20, 20))

    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה Python בחלון משחק

תרגלו בעצמכם: Pygame אונליין