파이썬 기초 문법을 총동원하여 진짜 프로그램을 만들어 봅시다!

이미지
Day 14 2주차 프로젝트: Up-Down 숫자 맞추기 게임 파이썬 기초 문법을 총동원하여 진짜 프로그램을 만들어 봅시다! 드디어 2주차의 마지막 날입니다! 지난 14일 동안 변수부터 내장 함수까지 쉼 없이 달려오셨는데요. 오늘은 이 모든 개념을 하나로 엮어 '숫자 맞추기 게임' 을 직접 제작해 보겠습니다. 코드를 한 줄씩 따라 치는 것에 그치지 않고, 각 로직이 왜 필요한지 고민하며 완성해 보세요! 1. 게임 설계도 그리기 무작정 코딩을 시작하기 전, 프로그램이 어떻게 돌아갈지 머릿속으로 그려보는 것이 중요합니다. 게임 규칙: 1. 컴퓨터는 1~100 사이의 랜덤한 숫자 를 하나 뽑습니다. 2. 사용자는 숫자를 입력합니다. 3. 정답보다 낮으면 "Up!" , 높으면 "Down!" 을 외칩니다. 4. 정답을 맞히면 총 시도 횟수 를 보여주며 종료합니다. 2. 준비물: 랜덤 숫자 생성하기 컴퓨터가 매번 다른 숫자를 뽑게 하려면 파이썬의 random 모듈이 필요합니다. import random # 랜덤 기능을 가져옵니다. # 1부터 100 사이의 정수 하나를 뽑아 정답으로 저장 answer = random.randint(1, 100) 3. 메인 코드 작성 이제 while 루프와 if 조건문을 조합하여 게임을 완성해 봅시다. import random def play_game(): answer = random.randint(1, 100) attempts = 0 # 시도 횟수 print("--- 숫자 맞추기 게임을 시작합니다 (1~100) ---") while T...

2주차 프로젝트: Up-Down 숫자 맞추기 게임

Day 14

2주차 프로젝트: Up-Down 숫자 맞추기 게임

파이썬 기초 문법을 총동원하여 진짜 프로그램을 만들어 봅시다!

드디어 2주차의 마지막 날입니다! 지난 14일 동안 변수부터 함수, 내장 함수까지 쉼 없이 달려오셨는데요. 오늘은 이 모든 개념을 하나로 엮어 '숫자 맞추기 게임'을 직접 제작해 보겠습니다.

코드를 한 줄씩 따라 치는 것에 그치지 않고, 각 로직이 왜 필요한지 고민하며 완성해 보세요!

1. 게임 설계도 그리기

무작정 코딩을 시작하기 전, 프로그램이 어떻게 돌아갈지 머릿속으로 그려보는 것이 중요합니다.

게임 규칙:
1. 컴퓨터는 1~100 사이의 랜덤한 숫자를 하나 뽑습니다.
2. 사용자는 숫자를 입력합니다.
3. 정답보다 낮으면 "Up!", 높으면 "Down!"을 외칩니다.
4. 정답을 맞히면 총 시도 횟수를 보여주며 종료합니다.

2. 준비물: 랜덤 숫자 생성하기

컴퓨터가 매번 다른 숫자를 뽑게 하려면 파이썬의 random 모듈이 필요합니다.

import random # 랜덤 기능을 가져옵니다.

# 1부터 100 사이의 정수 하나를 뽑아 정답으로 저장
answer = random.randint(1, 100)

3. 메인 코드 작성

이제 while 루프와 if 조건문을 조합하여 게임을 완성해 봅시다.

import random

def play_game():
    answer = random.randint(1, 100)
    attempts = 0 # 시도 횟수
    print("--- 숫자 맞추기 게임을 시작합니다 (1~100) ---")

    while True:
        guess = int(input("숫자를 입력하세요: "))
        attempts += 1 # 입력할 때마다 횟수 증가

        if guess == answer:
            print(f"축하합니다! {attempts}번 만에 맞히셨습니다.")
            break # 정답을 맞히면 무한 루프 탈출
        elif guess < answer:
            print("Up!")
        else:
            print("Down!")

# 게임 실행
play_game()

숫자 맞추기 게임 실행 흐름

while 반복 + if/elif/else 조건 분기로 “Up/Down” 힌트를 주는 구조

1) 게임 시작

1~100 중에서 랜덤 정답을 하나 고르고, 시도 횟수(attempts)를 0으로 시작합니다.

random.randint(1, 100)

2) 숫자 입력

사용자가 숫자를 입력하면, 입력할 때마다 시도 횟수 +1 합니다.

attempts += 1

3) while 반복

정답을 맞힐 때까지 계속 반복합니다. (무한 루프)

while True:
4) 조건 분기
if / elif / else 로 비교
입력값 < 정답 정답이 더 큽니다. 힌트로 Up! 출력
print("Up!")
입력값 > 정답 정답이 더 작습니다. 힌트로 Down! 출력
print("Down!")
입력값 == 정답 축하 메시지를 출력하고 break로 while 루프를 종료합니다.
break

5) 게임 종료

{attempts}번 만에 맞히셨습니다 처럼 시도 횟수까지 함께 출력하고 종료합니다.


🔍 이번 프로젝트의 핵심 포인트

1. 형변환 (int): input()으로 받은 값은 문자열이므로 계산을 위해 반드시 정수로 바꿔줘야 합니다.

2. 무한 루프와 break: 정답을 맞히기 전까지는 계속 반복해야 하므로 while True:를 사용하고, 정답 시 break로 멈춰줍니다.

3. 변수 업데이트: attempts += 1을 통해 데이터가 실시간으로 변하는 과정을 관리합니다.

오늘의 심화 미션 🚩

"더 똑똑한 게임 만들기"
1. 시도 횟수가 10번을 넘어가면 "실패! 정답은 X였습니다."라고 출력하고 종료되게 해보세요.
2. 숫자가 아닌 문자를 입력했을 때 에러가 나지 않도록 처리할 수 있을까요? (힌트: isnumeric() 함수 활용)

2주간의 대장정을 마치신 여러분, 진심으로 축하드립니다!
이제 여러분은 파이썬의 기초 문법을 넘어서 하나의 논리를 구현할 수 있는 단계에 오셨습니다.
3주차인 15일차: 파이썬 라이브러리와 모듈 활용으로 더 넓은 세계를 탐험해 봐요! 💜

소스 코드 출처: 개인 깃허브 저장소 링크(예시)

댓글

이 블로그의 인기 게시물

초보 파이썬 따라하기: 7가지 실전 프로젝트로 매일 코딩 습관 만들기

초보자를 위한 Step-by-Step: 리스트와 인덱싱으로 값을 추가/삭제해 Python 기초 잡기

조건문(if, elif, else) 배우기