on
ai 주식투자
- Get link
- X
- Other Apps
python import pygame import random import sys # 초기화 pygame.init() # 색상 정의 WHITE = (255, 255, 255) BLACK = (0, 0, 0) RED = (255, 0, 0) GREEN = (0, 255, 0) # 화면 설정 WIDTH, HEIGHT = 640, 480 SCREEN = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("숫자 맞추기 게임") # 폰트 설정 FONT = pygame.font.SysFont(None, 36) # 이미지 로드 try: background = pygame.image.load('images/background.png') logo = pygame.image.load('images/logo.png') submit_button = pygame.image.load('images/submit.png') reset_button = pygame.image.load('images/reset.png') except pygame.error as e: print(f"이미지 로드 실패: {e}") pygame.quit() sys.exit() # 게임 변수 MAX_ATTEMPTS = 5 NUMBER_RANGE = (1, 100) secret_number = random.randint(*NUMBER_RANGE) attempts = 0 guess = "" feedback = "" # 버튼 직사각형 설정 submit_rect = submit_button.get_rect(topleft=(WIDTH//2 - 100, HEIGHT//2 + 50)) reset_rect = reset_button.get_rect(topleft=(WIDTH//2 + 50, HEIGHT//2 + 50)) # 입력 박스 설정 input_box = pygame.Rect(WIDTH//2 - 50, HEIGHT//2, 100, 40) def draw_text(text, color, rect): """텍스트를 화면에 그리는 함수""" img = FONT.render(text, True, color) SCREEN.blit(img, rect) def reset_game(): """게임 상태를 초기화하는 함수""" global secret_number, attempts, guess, feedback secret_number = random.randint(*NUMBER_RANGE) attempts = 0 guess = "" feedback = "" def main(): global guess, attempts, feedback clock = pygame.time.Clock() active = False while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() # 마우스 클릭 처리 if event.type == pygame.MOUSEBUTTONDOWN: if input_box.collidepoint(event.pos): active = True else: active = False if submit_rect.collidepoint(event.pos): if guess.isdigit(): guess_num = int(guess) attempts += 1 if guess_num < secret_number: feedback = "너무 낮아요!" elif guess_num > secret_number: feedback = "너무 높아요!" else: feedback = "정답입니다!" else: feedback = "유효한 숫자를 입력하세요." if reset_rect.collidepoint(event.pos): reset_game() # 키보드 입력 처리 if event.type == pygame.KEYDOWN and active: if event.key == pygame.K_RETURN: if guess.isdigit(): guess_num = int(guess) attempts += 1 if guess_num < secret_number: feedback = "너무 낮아요!" elif guess_num > secret_number: feedback = "너무 높아요!" else: feedback = "정답입니다!" else: feedback = "유효한 숫자를 입력하세요." elif event.key == pygame.K_BACKSPACE: guess = guess[:-1] elif event.unicode.isdigit(): if len(guess) < 3: guess += event.unicode # 배경 그리기 SCREEN.blit(background, (0, 0)) SCREEN.blit(logo, (WIDTH//2 - logo.get_width()//2, 50)) # 입력 박스 그리기 pygame.draw.rect(SCREEN, WHITE, input_box, 2) draw_text(guess, WHITE, (input_box.x + 10, input_box.y + 5)) # 버튼 그리기 SCREEN.blit(submit_button, submit_rect) SCREEN.blit(reset_button, reset_rect) # 피드백 표시 feedback_rect = pygame.Rect(WIDTH//2 - 100, HEIGHT//2 + 100, 200, 50) draw_text(feedback, RED if feedback != "정답입니다!" else GREEN, feedback_rect) # 시도 횟수 표시 attempts_text = f"시도: {attempts}/{MAX_ATTEMPTS}" draw_text(attempts_text, WHITE, (10, 10)) # 게임 승리 조건 if feedback == "정답입니다!" or attempts >= MAX_ATTEMPTS: pygame.time.delay(2000) reset_game() pygame.display.flip() clock.tick(30) if __name__ == "__main__": main() |
이 파이썬 프로그램은 Pygame 라이브러리를 사용하여 간단한 숫자 맞추기 미니게임을 구현합니다. 게임의 목표는 1부터 100 사이의 임의의 숫자를 제한된 시도 내에 맞추는 것입니다.
이 게임은 사용자가 간단하게 숫자를 추측하며, Pygame을 통해 시각적으로 상호작용할 수 있도록 설계되었습니다. 필요한 이미지는 Stable Diffusion과 같은 도구를 사용하여 생성한 후 images 폴더에 저장해야 합니다.
Comments
Post a Comment