التكرار باستخدام For
جزء من قسم Python في نافذة لعبة في رحلة Pygame على Coddy. الدرس 15 من 32.
تكرّر حلقة for أسطرها مرة واحدة لكل قيمة تُعطى لها:
for i in range(8):
pygame.draw.circle(screen, (255, 255, 255), (40 + i * 80, 80), 5)تعطي range(8) الأعداد 0 و1 و2، وهكذا حتى 7: ثمانية أعداد، تبدأ من 0 وتتوقف قبل 8. تخزّن الحلقة كل عدد منها في i بالتتابع، ثم تنفّذ الأسطر ذات المسافة البادئة. لذلك يكون موقع النجمة الأولى عند x 40، والتالية عند 120، ثم 200، وصولًا إلى 600.
الأسطر ذات المسافة البادئة هي جسم الحلقة، كما في if. يُنفّذ السطر الأول بعد الجسم، عند مستوى المسافة البادئة الخارجي، بعد انتهاء الحلقة.
تقع هذه الحلقة في جزء الرسم من حلقة اللعبة، لذا تُرسم النجوم الثماني مجددًا في كل إطار. وهي قصيرة وتنتهي فورًا، لذلك ينتهي الإطار في موعده.
i اسم شائع لمتغير العدّ، لكن أي اسم يصلح: for n in range(8): يعدّ بالطريقة نفسها.
التحدي
سهلاستبدل النجمة الواحدة بحلقة for على range(8) ترسم 8 نجوم بيضاء بنصف قطر 5 عند (40 + i * 80, 80).
جرّب بنفسك
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# هيّئ الأشياء هنا، قبل حلقة اللعبة.
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, (255, 255, 255), (40, 80), 5)
pygame.display.flip()
clock.tick(60)
pygame.quit()
جميع دروس Python في نافذة لعبة
4حلقات ترسم
التكرار باستخدام Forالبداية والنهاية والخطوةاستخدام متغير الحلقةحلقة داخل حلقةالعد باستخدام Whileتدرّب بنفسك: Playground لـ Pygame