본문 바로가기
💻 개발블로그/TIL

TIL(211220): 파이썬프로젝트-숫자맞추기 게임

by August.J 2021. 12. 20.

파이썬을 이용해 숫자맞추기 게임 만들기

스파르타코딩 수업 1주일 배우고 2주차 첫날부터 개인 프로젝트를 진행했다.

그동안 배운것들 뒤죽박죽이라 구글링하며 비슷한 예제 찾아가며 입력했는데,

두 가지 과제 중 한 가지만 거의 비슷하게 구현했고, 두 번째 프로젝트는 미완성으로 제출했다.

일주일간의 노력의 결과물인데, 그래도 백지에서 이 정도 결과물을 완성했다는 건 스스로에게 격려해줄만하다.

그렇게 해야 더 열심히 할 수 있을 것 같다 

 

*내가 자주하는 실수

-같다표시는 == 두번 사용할 것!!

P값이 for문 바깥에 있으면 for문만큼 P를 반복하므로 P값을 for문안에 넣어준다.

 

 

*프로젝트를 진행하면서 알아두면 좋은 함수, 코드들

*import random

이번 프로젝트는 random모듈을 이용하므로 random모듈을 임포트해준다. (randrange)

 

*random.randrange(a,b)

a, b사이의 값을 랜덤으로 고른다.

 

*for in range

for문에 range값을 넣으면 해당범위만큼 반복시킨다.예를들면)for i in range(0,5)i가 0에서 4만큼 순회한다. (마지막 숫자는 제외)

 

*len함수

len(i)입력값 i의 길이(전체 개수)를 리턴하는 함수이다. 

 

*while True

무한반복loop 실행

 

더보기

[간단설명]

컴퓨터가 1~100 중에서 임의의 수를 랜덤으로 정하면, 플레이어가 해당 수를 맞히는 게임입니다. 컴퓨터가 정한 수가 플레이어가 말한 수보다 작으면 컴퓨터는 '업'이라고 말하고, 크다면 컴퓨터는 '다운'이라고 말해서 힌트를 줍니다. 플레이어는 힌트를 토대로 5회 안에 컴퓨터가 정한 수를 맞혀야 합니다.

[상세설명]

  1. 컴퓨터가 1~100 중에서 임의의 수(C)를 랜덤으로 정한다. (random 패키지에 있는 randrange 함수를 사용할 것)
  2. 플레이어가 input 함수를 통해서 임의의 수(P)를 입력한다.
  3. 컴퓨터는 C와 P를 비교하여, 업 / 다운 중 하나를 출력한다. (비교할 때는 if문을 사용할 것, '업' 혹은 '다운'은 print 문을 통해서 출력할 것)

업: 자신의 수(C)가 플레이어가 정한 임의의 수(P)보다 높은 경우

다운: 자신의 수(C)가 플레이어가 정한 임의의 수(P)보다 낮은 경우

  1. 2~3번을 4번 더 반복한다. (즉, 2~3번을 for문으로 작성할 것)

플레이어가 총 5회 안에 컴퓨터가 정한 수를 맞히면 '성공', 맞히지 못하면 '실패' 를 출력한다

import random

#업다운게임 만들기

print('숫자를 입력하세요')

C = random.randrange(1,101) #컴퓨터가 1-100 사이의 숫자를 랜덤으로 고른다.

result = 0

for i in range(0,5): #5회반복

    P = int(input())  # 플레이어는 임의의 숫자를 입력한다. 숫자로 받아야해서 int를 붙여준다.

    if P < C:
        print('업 입니다.')

    elif P > C:
        print('다운 입니다.')

    else:
        result = 1
        break #반복을 끝낸다.

#반복을 끝낸 뒤 조건문
if result == 1:
    print('성공입니다')

else:
    print('실패입니다, 분발하세요')

 

더보기

업다운 인공지능 만들기

[간단설명]

플레이어가 1~100 중에서 임의의 수를 정하면, 컴퓨터가 해당 수를 맞히는 게임입니다. 플레이어가 정한 수가 컴퓨터가 말한 수보다 작으면 플레이어는 '업'이라고 말하고, 크다면 플레이어는 '다운'이라고 말해서 힌트를 줍니다. 컴퓨터는 플레이어가 주는 힌트를 토대로, 수를 맞힐 때까지 계속해서 시도합니다.

[상세설명]

  1. 플레이어가 input 함수를 통해서 1~100 중 임의의 수(P)를 입력한다. (1~100 이외의 수를 입력할 경우, 다시 입력하도록 할 것)
  2. 컴퓨터는 플레이어가 정한 수(P)를 가장 빨리 맞힐 수 있도록 수(C)를 말한다. (randrange는 사용하지 말 것)
  3. 플레이어는 C와 P를 비교하여, 업 / 다운 중 하나를 입력한다. (직접 '업' 혹은 '다운'을 input 함수를 통해 입력하도록 할 것, 그 이외의 단어를 입력할 경우 다시 입력하도록 할 것, P가 C보다 더 큰데도 플레이어가 거짓말로 '다운'이라고 할 경우에도 다시 입력하도록 할 것)

업: 플레이어가 정한 임의의 수(P)가 컴퓨터가 말한 수(C)보다 높은 경우

다운: 플레이어가 정한 임의의 수(P)가 컴퓨터가 말한 수(C)보다 낮은 경우

  1. 2~3번을 컴퓨터가 맞힐 때까지 반복한다. (즉, 2~3번을 while문으로 작성할 것)

컴퓨터가 수를 맞히면 '성공'을 출력한다.