파이썬 randint, input 함수로 숫자 맞추기 게임 만들기-코드잇

bearwoong

·

2020. 3. 18. 17:00

728x90

파이썬 randint, input 함수로 숫자 맞추기 게임 만들기-코드잇

randint 함수

파이썬에서 randint(ㅁ,ㅁ) 함수는 파라미터를 2개 받아서 그 두 사이의 랜덤한 숫자를 리턴한다.
randint 함수는 random 모듈에 있으므로 from random import randint로 호출해주어야 한다.
(from random import * 이렇게 호출도 가능하지만 randint 함수 하나만 쓸 예정이기 때문에 위와 같이 하는 것이 더 좋은 코딩이다.)

input 함수

input("   ") 함수는 파라미터로 들어가는 문구를 띄우고 사용자가 입력한 값을 문자열로 리턴한다.
예를들어 input("좋아하는 숫자를 입력하세요")라고 치면 "좋아하는 숫자를 입력하세요" 가 뜨고 입력을 기다리고 있는다. 

파이썬에서 input 함수를 쓸 때 주의할 점은 사용자가 정수값을 넣어도 무조건 다 문자열로 리턴한다. int()로 형변환을 해줘야 사용자가 원래 생각했던 것 처럼 정수형으로 쓸 수 있다.
number = int(input("좋아하는 숫자를 입력하세요: "))와 같이 써야 number에 정수형의 사용자가 입력한 값이 들어가게 된다.

숫자 맞추기 게임 만들기

from random import randint

count = 4 #총기회
answer = randint(1,20) #맞춰야 될 수

while (count>0):
    your_answer = int(input("기회가 " + str(count) + "번 남았습니다. 1-20 사이의 숫자를 맞춰보세요: "))
    if (answer == your_answer):
        print("축하합니다. "+str(5-count)+"번만에 숫자를 맞추셨습니다.")
        break
    elif (answer > your_answer):
        print("up")
    elif (answer < your_answer):
        print("down")
    count = count-1
    if (count == 0):
        print ("아쉽습니다. 정답은 "+str(answer)+"였습니다.")

처음에 완성하고 실행시켰을 때 "ㅁ번만에 숫자를 맞추셨습니다."에서 계속 생각처럼 나오지 않았었다.
몇번만에 맞추는지 세는 변수를 하나 더 만들까 했었는데 그렇게하면 조금 지저분해질 것 같다는 생각이 들어서 고민하다가 9번째 줄의 축하합니다 뒤를 5-count로 하니 깔끔하게 해결 할 수 있었다.

10번째 줄의 break는 반복문을 탈출하기 위해 사용한다. break가 없으면 정답을 맞춰도 count가 0이 될때까지 계속해서 정답을 받으므로 반드시 필요하다.

실행결과는 아래와 같다.

숫자맞추기 게임 실행 결과

반응형