반복문 안의 반복문
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칸 더 안쪽에 둡니다.
챌린지
중급건물 전체에 불을 밝히세요:
- 창문 반복문을
for row in range(4):로 감싸세요. y = 210 + row * 60으로 설정하면 행이 y 210, 270, 330, 390에 배치됩니다.- 창문은 총 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 플레이그라운드