[python] Pygame을 사용하여 메모리 테스트 게임 만들기

이번에는 Python 라이브러리인 Pygame을 사용하여 메모리 테스트 게임을 만들어 보겠습니다. 메모리 테스트 게임은 플레이어가 주어진 시간 내에 가능한 한 많은 숫자를 기억하고 입력하는 게임입니다. 이를 통해 우리는 플레이어의 기억력과 반응 속도를 테스트할 수 있습니다.

필요한 라이브러리 설치

먼저, Pygame 라이브러리를 설치해야 합니다. 아래의 명령어를 사용하여 설치할 수 있습니다:

pip install pygame

게임 기본 구조 설정

먼저, Pygame을 초기화하고 게임 창을 생성해야 합니다. 다음 코드를 사용하여 이 작업을 수행할 수 있습니다:

import pygame
import random

pygame.init()

width = 800
height = 600

screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("Memory Test Game")

clock = pygame.time.Clock()

위의 코드를 사용하여 Pygame을 초기화하고 게임 창을 생성합니다. widthheight 변수는 게임 창의 크기를 나타내며, screen 변수는 실제 게임 창을 나타냅니다. pygame.display.set_caption() 함수를 사용하여 게임 창의 제목을 설정할 수 있습니다. 마지막으로 clock 변수는 게임 루프를 제어하기 위해 사용됩니다.

숫자 생성과 표시

이제 게임에서 사용할 숫자를 생성하고 화면에 표시해 보겠습니다. 게임에서 사용할 숫자는 무작위로 생성되며, 화면의 중앙에 표시됩니다. 다음 코드를 사용하여 숫자를 생성하고 표시합니다:

number = random.randint(1, 100)
font = pygame.font.Font(None, 60)
text = font.render(str(number), True, (255, 255, 255))
text_rect = text.get_rect(center=(width / 2, height / 2))
screen.blit(text, text_rect)

위의 코드에서 random.randint() 함수를 사용하여 1부터 100까지의 무작위 숫자를 생성합니다. 그런 다음, 생성된 숫자를 화면에 표시하기 위해 pygame.font.Font() 함수를 사용하여 폰트를 생성하고, font.render() 함수로 텍스트를 렌더링합니다. 마지막으로 text_rect 변수를 사용하여 텍스트를 화면의 중앙에 위치시킵니다.

입력 처리와 정답 확인

이제 플레이어의 입력을 처리하고 정답을 확인하는 기능을 추가해 보겠습니다. 플레이어가 입력한 키를 확인하고, 입력된 숫자와 생성된 숫자가 일치하는지 확인합니다. 다음 코드를 사용하여 이를 구현할 수 있습니다:

input_number = ""
running = True

while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                running = False
            elif event.key == pygame.K_RETURN:
                if input_number == str(number):
                    print("정답입니다.")
                else:
                    print("틀렸습니다.")

    keys = pygame.key.get_pressed()
    for key, value in enumerate(keys):
        if value:
            if key in range(pygame.K_0, pygame.K_9 + 1):
                input_number += chr(key)
            elif key == pygame.K_BACKSPACE:
                input_number = input_number[:-1]

    screen.fill((0, 0, 0))
    text = font.render(input_number, True, (255, 255, 255))
    text_rect = text.get_rect(center=(width / 2, height / 2))
    screen.blit(text, text_rect)
    pygame.display.flip()

    clock.tick(30)

pygame.quit()

위의 코드에서는 게임 루프를 사용하여 플레이어의 입력을 확인하고, 입력된 숫자와 생성된 숫자를 비교합니다. 플레이어가 키를 입력하면, 해당 키에 대한 조건문을 사용하여 입력된 키가 어떤 기능을 하는지 검사합니다. 입력한 숫자는 input_number 변수에 저장되고, 입력된 숫자가 화면에 표시됩니다. 플레이어가 엔터 키를 누르면, 입력된 숫자와 생성된 숫자를 비교하여 정답 여부를 출력합니다.

마치며

이제 Pygame을 사용하여 메모리 테스트 게임을 만들어 보았습니다. 이 게임을 실행하고 플레이어의 기억력과 반응 속도를 테스트해 보세요. 또한 필요에 따라 게임을 확장하거나 개선할 수도 있습니다.

참고 자료