Python/Game
⚡ 반응속도 테스트 게임 #python
고발초이이
2024. 10. 14. 18:38
반응형
SMALL
📌 목차
🎮 게임 소개
안녕하세요, 코딩을 사랑하는 여러분! 이번에는 여러분의 반사신경을 테스트해볼 수 있는 흥미로운 파이썬 게임, "반응 속도 테스트 게임"을 소개합니다. 이 게임은 Pygame을 활용해 간단한 게임을 구현하는 과정에서 만들어졌으며, 무작위로 녹색 화면으로 전환되는 순간을 빠르게 클릭해야 하는 방식입니다. 자신의 반응 속도를 테스트하고, 계급을 통해 자신의 반사신경 수준을 확인해보세요!
🔍 게임 방법
- 게임 시작: 게임이 시작되면 "화면을 클릭하여 시작하세요"라는 메시지가 화면에 표시됩니다.
- 준비 상태: 클릭 후, 화면이 빨간색으로 전환되어 준비를 시킵니다.
- 반응 테스트: 무작위 시간(2~5초) 후 화면이 녹색으로 바뀝니다. 이때 최대한 빠르게 클릭하세요!
- 계급 확인: 반응 속도에 따라 계급이 부여됩니다.
- 0.2초 이하: "신의 손"
- 0.2~0.4초: "반사 신경 마스터"
- 0.4~0.6초: "준수한 반응"
- 0.6~1.0초: "좀 더 노력해요"
- 1.0초 이상: "거북이"
🖥️ 코드 하이라이트
게임의 주요 코드를 아래에 소개합니다. 게임은 Pygame 라이브러리를 활용해 화면을 구성하고, 반응 속도를 계산하는 구조로 만들어졌습니다. 주요 로직은 다음과 같습니다:
import pygame
import random
import time
import sys
# Pygame 초기화
pygame.init()
# 화면 설정
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("반응 속도 테스트 게임")
# 색상 설정
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLACK = (0, 0, 0)
# 폰트 설정
font = pygame.font.SysFont("malgungothic", 48)
# 게임 상태
waiting_for_click = False
game_start_time = 0
reaction_time = 0
# 계급을 결정하는 함수
def get_rank(reaction_time):
if reaction_time <= 0.2:
return "신의 손"
elif reaction_time <= 0.4:
return "반사 신경 마스터"
elif reaction_time <= 0.6:
return "준수한 반응"
elif reaction_time <= 1.0:
return "좀 더 노력해요"
else:
return "거북이"
# 게임 메인 루프
def main():
global waiting_for_click, game_start_time, reaction_time
screen.fill(WHITE)
show_message("화면을 클릭하여 시작하세요", BLACK)
pygame.display.update()
# 무작위 대기 시간 설정
random_wait_time = random.uniform(2, 5)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.MOUSEBUTTONDOWN and not waiting_for_click:
screen.fill(RED)
show_message("준비하세요...", BLACK)
pygame.display.update()
time.sleep(random_wait_time)
screen.fill(GREEN)
pygame.display.update()
game_start_time = time.time()
waiting_for_click = True
elif event.type == pygame.MOUSEBUTTONDOWN and waiting_for_click:
reaction_time = time.time() - game_start_time
rank = get_rank(reaction_time)
show_message(f"반응 시간: {reaction_time:.3f} 초\n계급: {rank}", BLACK)
pygame.display.update()
time.sleep(3)
reset_game()
pygame.display.update()
# 메시지 출력 함수
def show_message(text, color):
message_lines = text.split('\n')
y_offset = 0
for line in message_lines:
message = font.render(line, True, color)
screen.blit(message, (screen_width // 2 - message.get_width() // 2, screen_height // 2 - message.get_height() // 2 + y_offset))
y_offset += 60
# 게임 초기화 함수
def reset_game():
global waiting_for_click
waiting_for_click = False
screen.fill(WHITE)
show_message("화면을 클릭하여 시작하세요", BLACK)
pygame.display.update()
if __name__ == '__main__':
main()
▶ 게임 실행
이 코드는 Python 3.x와 Pygame이 설치되어 있어야 정상적으로 작동합니다. 게임을 실행하려면 아래 명령어를 터미널에서 실행하세요:
python reaction_game.py
이후, 화면의 안내에 따라 게임을 즐기시면 됩니다. 자신의 반응 속도를 테스트하고, "신의 손"이라는 칭호에 도전해보세요! 💪
반응형
LIST