Menu
CoddyTech

반복문 안의 반복문

Coddy Pygame 여정의 게임 창에서 배우는 Python 섹션에 포함된 레슨. 32개 중 18번째.

루프의 본문 안에 또 다른 루프를 넣을 수 있습니다. 내부 루프는 외부 루프가 한 번 반복될 때마다 끝까지 실행됩니다:

for row in range(4):
    for col in range(8):
        x = 130 + col * 50
        y = 210 + row * 60
        pygame.draw.rect(screen, (255, 210, 90), (x, y, 20, 20))

row가 0일 때 내부 루프는 맨 위에 창문 8개를 그립니다. 그런 다음 row가 1이 되고 내부 루프는 60픽셀 아래에 창문을 8개 더 그립니다. 8개씩 네 줄이면 창문은 32개입니다. 격자는 항상 이런 모양입니다. 행을 위한 루프 하나, 열을 위한 루프 하나입니다.

pygame.draw.rect(screen, colour, (x, y, width, height))는 왼쪽 위 모서리가 (x, y)에 있는 채워진 사각형을 그립니다.

들여쓰기에 주의하세요. 내부 for는 외부 루프 아래에 들여쓰기하고, 내부 루프의 본문은 다시 들여쓰기하여 외부 루프에서 8칸 더 안쪽에 둡니다.

challenge icon

챌린지

중급

건물 전체에 불을 밝히세요:

  1. 창문 반복문을 for row in range(4):로 감싸세요.
  2. y = 210 + row * 60으로 설정하면 행이 y 210, 270, 330, 390에 배치됩니다.
  3. 창문은 총 32개입니다. 8개씩 4행입니다.

직접 해보기

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.rect(screen, (40, 44, 70), (100, 180, 440, 300))
    for col in range(8):
        x = 130 + col * 50
        y = 210
        pygame.draw.rect(screen, (255, 210, 90), (x, y, 20, 20))

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

pygame.quit()

게임 창에서 배우는 Python의 모든 레슨

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