Menu
CoddyTech

무작위 숫자

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

Python의 random 모듈은 무작위로 숫자를 선택합니다. 프로그램 맨 위에서 import pygame 위나 아래에 가져옵니다:

import random

random.randint(a, b)는 a부터 b까지의 정수를 반환하며, 양 끝값도 포함됩니다. random.choice(items)는 목록에서 항목 하나를 선택합니다:

x = random.randint(20, 620)
size = random.choice([3, 4, 5])

호출할 때마다 다시 선택하므로, 새 값이 필요할 때 호출하세요. 스페이스 키를 눌러 배치하는 별:

if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
    x = random.randint(20, 620)
    y = random.randint(60, 300)
    stars.append((x, y))

stars.append((x, y))에서 괄호가 두 겹인 점에 유의하세요. append는 항목 하나를 받으며, 그 항목은 튜플 (x, y)입니다. 대신 게임 루프에 들어가기 전에 x와 y를 한 번만 선택하면, 별은 모두 같은 위치에 놓입니다.

challenge icon

챌린지

중급

스페이스바를 눌러 별을 흩뿌려 보세요:

  1. 맨 위에 import random을 추가하세요.
  2. K_SPACE에 대한 KEYDOWN 이벤트가 발생하면 x = random.randint(20, 620)과 y = random.randint(60, 300)을 선택하고, (x, y)를 stars에 추가하세요.
  3. 클릭으로도 이전처럼 계속 별을 추가합니다.

직접 해보기

import pygame

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()

# 게임 루프가 시작되기 전에 여기서 필요한 것들을 설정하세요.
stars = []
font = pygame.font.Font(None, 36)

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

    # 매 프레임마다 여기서 필요한 것들을 변경하세요.

    screen.fill((20, 24, 48))
    # 화면을 채운 후 여기서 그리세요.
    for star in stars:
        pygame.draw.circle(screen, (255, 255, 255), star, 5)
    text = font.render(f"Stars: {len(stars)}", True, (230, 230, 240))
    screen.blit(text, (20, 20))

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

pygame.quit()
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

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

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