Menu
CoddyTech

셀로 이루어진 격자

Coddy Pygame 여정의 프로젝트 섹션에 포함된 레슨. 31개 중 1번째.

Snake은 격자에서 움직입니다. 창은 가로 24칸, 세로 18칸이며 각 칸은 한 변이 20픽셀이고, 뱀은 한 번에 한 칸씩 움직입니다.

칸 단위로 작업하고, 그릴 때만 픽셀로 변환하세요. 칸 (col, row)은 픽셀 (col * 20, row * 20)에서 시작합니다. 각 칸을 양쪽에서 1픽셀씩 안쪽으로 들어오도록 2픽셀 작게 그리면 이웃한 칸 사이에 얇은 간격이 생겨 뱀의 몸통 마디를 구분할 수 있습니다.

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. 루프 위에 앞서처럼 각 변에서 1픽셀 안쪽에 셀 하나를 그리는 draw_cell(cell, color)를 작성하세요.
  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()

프로젝트의 모든 레슨

직접 연습해 보세요: Pygame 플레이그라운드