Menu
CoddyTech

סופרים עם len

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

len(stars) הוא מספר הפריטים שהרשימה מכילה. אורך של רשימה ריקה הוא 0. השתמשו בו כדי להציג ספירה:

text = font.render(f"Stars: {len(stars)}", True, (230, 230, 240))

מחרוזת f יכולה להכיל כל ביטוי בתוך הסוגריים המסולסלים שלה, כולל קריאה לפונקציה.

אפשר להשתמש ב-len גם כדי לקבוע מגבלה. הוסיפו כוכב רק כשיש מקום:

if event.type == pygame.MOUSEBUTTONDOWN and len(stars) < 10:
    stars.append(event.pos)

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

המגבלה נמצאת בלולאת האירועים, ומחוברת לבדיקת הלחיצה באמצעות and: פעולת ההוספה מתבצעת רק כשהאירוע הוא לחיצה ויש מקום. len פועלת גם על מחרוזות: len("Night") הוא 5.

challenge icon

אתגר

בינוני

ספרו את הכוכבים ועצרו בעשר:

  1. בחלק ההגדרה, הגדירו font = pygame.font.Font(None, 36).
  2. בחלק הציור, הציגו את f"Stars: {len(stars)}" בצבע (230, 230, 240) במיקום (20, 20).
  3. הוסיפו כוכב בלחיצה רק כל עוד len(stars) < 10.

נסו בעצמכם

import pygame

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

# הגדירו כאן את הדברים, לפני לולאת המשחק.
stars = []

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

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

    screen.fill((20, 24, 48))
    # ציירו כאן, אחרי המילוי.
    for star in stars:
        pygame.draw.circle(screen, (255, 255, 255), star, 5)

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

pygame.quit()

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

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