728x90
반응형
파이썬으로 게임만들기

제7장 2번 숫자맞추기게임
책에 있는 예제 살짝 변경함
파이썬마스터하기 어렵넹 ㅠㅠ
07장 숫자 맞히기 게임 만들기
07-1 조건 루프란?
07-2 숫자 맞히기 게임 프로그래밍하기
게임준비하기
#라이브러리 불러오기
import random
#변수 정의하기
userinput = ""
userguess = 0
#무작위 숫자 생성하기 1~100
randnum = random.randrange(1,101)
#게임실행하기
print("봉삼이는 1~100까지 숫자범위에서 하나를 정하였습니다. ")
print("이 숫자는 무엇일까~요?ㅋㅋㅋ")
#사용자가 맞출때까지 반복하기
while randnum != userguess:
userinput = input("예상 숫자 :").strip()
#입력값이 숫자인지 확인
if not userinput.isnumeric():
#if userinput.isnumeric() = false: 와 같음
print("숫자를 입력해주세요!!!")
else:
#입력한 값이 숫자면 진행
#입력한값을 숫자로 변환
userguess = int(userinput)
#정답확인하기
if userguess > randnum:
print("DOWN!!")
elif userguess < randnum:
print("UP!!")
else :
print("정답 !!")
>>결과
봉삼이는 1~100까지 숫자범위에서 하나를 정하였습니다.
이 숫자는 무엇일까~요?ㅋㅋㅋ
예상 숫자 :5
UP!!
예상 숫자 :50
UP!!
예상 숫자 :60
UP!!
예상 숫자 :90
DOWN!!
예상 숫자 :70
DOWN!!
예상 숫자 :66
DOWN!!
예상 숫자 :64
DOWN!!
예상 숫자 :62
정답 !!
위 코드 업그레이드하기
사용자에게 시도 횟수를 알려주고 숫자 범위의 하드코딩을 방지하는 등의 추가 기능이 포함
#코드 업그레이드하기
'''
1. 사용자가 정답을 맞출때까지 몇번 시도했는지 알리기
2. 하드코딩 피하기(숫자범위)
'''
import random
#변수 정의하기
userinput = ""
userguess = 0
minrnum = 1
maxrnum = 100
guessnum = 0
#무작위 숫자 생성하기
randnum = random.randrange(minrnum,maxrnum+1) # randrange 는 최대 수 의 -1 만큼의 범위를 가져옴
# 원하는 max값을 범위로 지정할려면 +1을 해줘야함
#게임실행하기
print("봉삼이는",minrnum,"에서",maxrnum,"사이의 숫자 하나를 정하였습니다. ")
print("이 숫자는 무엇일까~요?ㅋㅋㅋ")
#사용자가 맞출때까지 반복하기
while randnum != userguess:
userinput = input("예상 숫자 :").strip()
#입력값이 숫자인지 확인
if not userinput.isnumeric():
#if userinput.isnumeric() = false: 와 같음
print("숫자를 입력해주세요!!!")
else:
#입력한 값이 숫자면 진행 , 입력횟수출력
guessnum = guessnum+1 # +1만큼 증가하는 변수
userguess = int(userinput) #입력한값을 숫자로 변환
print(guessnum,"회 입력하셨습니다.")
#정답확인하기 userguess의 범위체크
if userguess < minrnum or userguess > maxrnum:
print(userguess,"는",minrnum , "~",maxrnum, "사이의 범위가 아닙니다")
elif userguess > randnum:
print("DOWN!!")
elif userguess < randnum:
print("UP!!")
else :
print()
print("정답 !! 시도횟수:",guessnum)
#끝날때출력하는말
print()
print("게임끝!!또만나요~ 안뇽!")
>>>>>결과
봉삼이는 1 에서 100 사이의 숫자 하나를 정하였습니다.
이 숫자는 무엇일까~요?ㅋㅋㅋ
예상 숫자 :50
1 회 입력하셨습니다.
DOWN!!
예상 숫자 :110
2 회 입력하셨습니다.
110 는 1 ~ 100 사이의 범위가 아닙니다
예상 숫자 :30
3 회 입력하셨습니다.
DOWN!!
예상 숫자 :20
4 회 입력하셨습니다.
DOWN!!
예상 숫자 :10
5 회 입력하셨습니다.
UP!!
예상 숫자 :15
6 회 입력하셨습니다.
UP!!
예상 숫자 :16
7 회 입력하셨습니다.
UP!!
예상 숫자 :18
8 회 입력하셨습니다.
UP!!
예상 숫자 :17
9 회 입력하셨습니다.
UP!!
예상 숫자 :19
10 회 입력하셨습니다.
정답 !! 시도횟수: 10
게임끝!!또만나요~ 안뇽!
문제
userinput값이랑 봉삼이가 생각한 randum값과의 차이 크기별로 "크다/작다,너무크다/너무작다" 라는 힌트를 주기
일단 위 문제는 값을 비교하는 구간에서 if조건을 사용해야 할 것 같음
그리고 봉삼네는 10을 기준으로 크다 작다를 비교해보았다
#문제
'''
1. 정답에 가까우면 크다/작다 멀면 너무크다 /너무작다
'''
import random
#변수 정의하기
userinput = ""
userguess = 0
minrnum = 1
maxrnum = 100
guessnum = 0
#무작위 숫자 생성하기
randnum = random.randrange(minrnum,maxrnum+1) # randrange 는 최대 수 의 -1 만큼의 범위를 가져옴
# 원하는 max값을 범위로 지정할려면 +1을 해줘야함
#게임실행하기
print("봉삼이는",minrnum,"에서",maxrnum,"사이의 숫자 하나를 정하였습니다. ")
print("이 숫자는 무엇일까~요?ㅋㅋㅋ")
print()
#사용자가 맞출때까지 반복하기
while randnum != userguess:
userinput = input("예상 숫자 :").strip()
#입력값이 숫자인지 확인
if not userinput.isnumeric():
#if userinput.isnumeric() = false: 와 같음
print("숫자를 입력해주세요!!!")
else:
#입력한 값이 숫자면 진행 , 입력횟수출력
guessnum = guessnum+1 # +1만큼 증가하는 변수
userguess = int(userinput) #입력한값을 숫자로 변환
print(guessnum,"회 입력하셨습니다.")
#정답확인하기
if userguess < minrnum or userguess > maxrnum:
print(userguess,"는",minrnum , "~",maxrnum, "사이의 범위가 아닙니다")
##############################문제의 답##############################################
elif userguess > randnum:
if userguess - randnum >= 10:
print(" VERY DOWN!! DOWN!! plz")
elif userguess - randnum < 10:
print("DOWN~~")
elif userguess < randnum:
if randnum - userguess >= 10 :
print("VERY UP!! UP!!")
elif randnum - userguess < 10:
print("UP!!")
##############################문제의 답##############################################
else :
print()
print("정답 !! 시도횟수:",guessnum)
#끝날때출력하는말
print()
print("게임끝!!또만나요~ 안뇽!")
>>>>>결과
봉삼이는 1 에서 100 사이의 숫자 하나를 정하였습니다.
이 숫자는 무엇일까~요?ㅋㅋㅋ
예상 숫자 :50
1 회 입력하셨습니다.
VERY UP!! UP!!
예상 숫자 :80
2 회 입력하셨습니다.
VERY DOWN!! DOWN!! plz
예상 숫자 :65
3 회 입력하셨습니다.
UP!!
예상 숫자 :68
4 회 입력하셨습니다.
UP!!
예상 숫자 :70
5 회 입력하셨습니다.
DOWN~~
예상 숫자 :69
6 회 입력하셨습니다.
정답 !! 시도횟수: 6
게임끝!!또만나요~ 안뇽!
숫자맞추기게임 끝 ~
728x90
반응형
'python > 파이썬으로게임만들기' 카테고리의 다른 글
파이썬게임만들기-제8장프로그래머가되자-2.게임기획(hangman게임만들기) (0) | 2023.05.02 |
---|---|
파이썬게임만들기-제7장숫자맞추기게임-1.조건루프 (0) | 2023.04.29 |
파이썬게임만들기-제6장비밀코드풀기-3. 암호화코드, 복호화코드 (0) | 2023.04.28 |
파이썬게임만들기-제6장비밀코드풀기-2.루프 (0) | 2023.04.28 |
파이썬게임만들기 -6장비밀코드풀기-1.리스트 (0) | 2023.04.27 |