Menu
CoddyTech
flag Ar iconالعربيةdown icon

الطعام

الدرس 24 من 40 في دورة اصنع ألعابًا باستخدام Pygame على Coddy.

يظهر الطعام في خلية عشوائية، وليس على الثعبان أبدًا. اختر خلية عشوائية وحاول مرة أخرى ما دامت تقع على جسم الثعبان:

def new_food(body):
    while True:
        cell = (random.randrange(COLS), random.randrange(ROWS))
        if cell not in body:
            return cell

تعطي random.randrange(COLS) عددًا صحيحًا من 0 إلى COLS - 1: أي عمود، دون تجاوز الحافة أبدًا. تنهي return الدالة والحلقة معها بمجرد العثور على خلية فارغة.

يتحقق cell not in body من القائمة بأكملها دفعة واحدة.

challenge icon

التحدي

سهل
  1. أضف import random في الأعلى.
  2. اكتب new_food(body) كما سبق، أسفل draw_cell.
  3. بعد direction، عيّن food = new_food(body).
  4. بعد التعبئة، ارسم الطعام باللون الأحمر (235, 80, 80).

جرّب بنفسك

import pygame

CELL = 20
COLS, ROWS = 24, 18
TURNS = {
    pygame.K_LEFT: (-1, 0),
    pygame.K_RIGHT: (1, 0),
    pygame.K_UP: (0, -1),
    pygame.K_DOWN: (0, 1),
}

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


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


body = [(5, 9), (4, 9), (3, 9)]
direction = (1, 0)

running = True
while running:
    moving = direction
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        elif event.type == pygame.KEYDOWN and event.key in TURNS:
            turn = TURNS[event.key]
            if turn != (-moving[0], -moving[1]):
                direction = turn

    x = body[0][0] + direction[0]
    y = body[0][1] + direction[1]
    body.insert(0, (x, y))
    body.pop()

    screen.fill((30, 30, 46))
    for cell in body[1:]:
        draw_cell(cell, (120, 220, 120))
    draw_cell(body[0], (180, 255, 160))
    pygame.display.flip()
    clock.tick(10)

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

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

جميع دروس اصنع ألعابًا باستخدام Pygame

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