Menu
CoddyTech

أعداد عشوائية

جزء من قسم Python في نافذة لعبة في رحلة Pygame على Coddy. الدرس 28 من 32.

تختار وحدة random في Python الأعداد عشوائيًا. استوردها في أعلى البرنامج، فوق import pygame أو تحته:

import random

تعطي random.randint(a, b) عددًا صحيحًا من a إلى b، مع تضمين الطرفين. وتختار random.choice(items) عنصرًا واحدًا من قائمة:

x = random.randint(20, 620)
size = random.choice([3, 4, 5])

في كل استدعاء، تختار قيمة جديدة، لذا استدعها عندما تحتاج إلى قيمة جديدة. نجمة يضعها الضغط على Space:

if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
    x = random.randint(20, 620)
    y = random.randint(60, 300)
    stars.append((x, y))

لاحظ القوسين المتداخلين في stars.append((x, y)): تأخذ append عنصرًا واحدًا، وهذا العنصر هو الصف (x, y). أما إذا اخترت x وy مرة واحدة قبل حلقة اللعبة، فستظهر كل نجمة في الموضع نفسه.

challenge icon

التحدي

متوسط

اجعل مفتاح المسافة ينثر النجوم:

  1. أضف import random في الأعلى.
  2. عند وصول حدث KEYDOWN للمفتاح K_SPACE، اختر x = random.randint(20, 620) وy = random.randint(60, 300)، وأضف (x, y) إلى stars.
  3. تظل النقرات تضيف النجوم كما في السابق.

جرّب بنفسك

import pygame

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

# هيّئ الأشياء هنا، قبل حلقة اللعبة.
stars = []
font = pygame.font.Font(None, 36)

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)
    text = font.render(f"Stars: {len(stars)}", True, (230, 230, 240))
    screen.blit(text, (20, 20))

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

pygame.quit()
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Python في نافذة لعبة

تدرّب بنفسك: Playground لـ Pygame