Menu
CoddyTech

Elif و Else

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

يمنح else عبارة if فرعًا ثانيًا يُنفَّذ عندما يكون الشرط خاطئًا. وتضيف elif، وهي اختصار لـ "else if"، مزيدًا من الشروط بينهما:

if moon_x < 200:
    colour = (255, 170, 90)
elif moon_x < 440:
    colour = (240, 230, 160)
else:
    colour = (160, 190, 255)

يفحص Python الشروط من الأعلى، وينفّذ أول فرع يكون شرطه صحيحًا، ويتخطّى البقية. عند x 100 يكون الشرطان الأول والثاني صحيحين، لكن الفرع الأول وحده هو الذي يُنفَّذ. ليس لـ else شرط: يُنفَّذ عندما لا يكون أيٌّ مما سبق صحيحًا.

تعمل عبارات if المنفصلة بطريقة مختلفة: يُفحَص كلٌّ منها. مع ثلاث عبارات if، سيتحوّل لون القمر عند x 100 إلى البرتقالي، ثم ستجعله العبارة الثانية أصفر من جديد.

هنا، colour متغيّر يحمل صفًّا. ارسم باستخدامه: pygame.draw.circle(screen, colour, (moon_x, moon_y), 50).

challenge icon

التحدي

متوسط

لوّن القمر بحسب موقعه. في جزء التغيير، بعد المفاتيح:

  1. إذا كان moon_x < 200، فعيّن colour إلى اللون البرتقالي (255, 170, 90).
  2. وإلا إذا كان moon_x < 440، فعيّنه إلى اللون المعتاد (240, 230, 160).
  3. وإلا فعيّنه إلى اللون الأزرق (160, 190, 255).
  4. ارسم القمر باستخدام colour.

جرّب بنفسك

import pygame

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

# هيّئ الأشياء هنا، قبل حلقة اللعبة.
moon_x = 320
moon_y = 240

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

    # غيّر الأشياء هنا مرةً في كل إطار.
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        moon_x = moon_x - 4
    if keys[pygame.K_RIGHT]:
        moon_x = moon_x + 4

    screen.fill((20, 24, 48))
    # ارسم هنا، بعد ملء الشاشة.
    pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)

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

pygame.quit()

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

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