Menu
CoddyTech

شبكة من الخلايا

جزء من قسم المشاريع في رحلة Pygame على Coddy. الدرس 1 من 31.

تتحرك الأفعى على شبكة. تتكون النافذة من 24 عمودًا و18 صفًا من الخلايا، طول ضلع كل منها 20 بكسلًا، وتتحرك الأفعى خلية كاملة في كل مرة.

اعمل بالخلايا وحوّلها إلى بكسلات للرسم فقط. تبدأ الخلية (col, row) عند البكسل (col * 20, row * 20). يؤدي رسم كل خلية بحجم أصغر بمقدار 2 بكسل، مع إزاحة قدرها 1 بكسل عن كل جانب، إلى ترك فجوة رفيعة بين الخلايا المتجاورة، بحيث يمكنك رؤية أجزاء الأفعى.

def draw_cell(cell, color):
    col, row = cell
    pygame.draw.rect(screen, color, (col * CELL + 1, row * CELL + 1, CELL - 2, CELL - 2))

يفك col, row = cell العناصر من الصف إلى متغيرين. احتفظ بالأرقام في ثوابت مثل CELL وCOLS وROWS: يوضح الكود ما تعنيه، وتغيير أحدها يغيّر اللعبة بأكملها.

challenge icon

التحدي

سهل
  1. فوق الحلقة، اكتب draw_cell(cell, color)، التي ترسم خلية واحدة على بُعد 1 بكسل من كل جانب، كما سبق.
  2. عيّن head = (5, 9).
  3. بعد التعبئة، ارسم الرأس باستخدام draw_cell(head, (180, 255, 160)).

جرّب بنفسك

import pygame

CELL = 20
COLS, ROWS = 24, 18

pygame.init()
screen = pygame.display.set_mode((COLS * CELL, ROWS * CELL))
pygame.display.set_caption("Snake")
clock = pygame.time.Clock()

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

    screen.fill((30, 30, 46))
    pygame.display.flip()
    clock.tick(10)

pygame.quit()

جميع دروس المشاريع

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