티스토리 뷰
파이썬으로 Up Down 게임 만들기!
즐겁다!
내용:
- 플레이어와 컴퓨터가 참여하는 업다운 게임을 만드세요.
- 프로그램은 다음과 같은 기능을 포함해야 합니다.
- 컴퓨터는 1부터 100 사이의 랜덤한 숫자를 생성합니다.
- 플레이어는 숫자를 입력하고, 입력한 숫자와 컴퓨터의 숫자를 비교하여 "업" 또는 "다운" 힌트를 제공합니다.
- 플레이어가 컴퓨터의 숫자를 정확히 맞히면 시도한 횟수를 알려줍니다.
- 플레이어가 숫자를 맞힐 때까지 위 과정을 반복합니다.
추가 도전 과제:
- 플레이어가 입력한 숫자가 범위를 벗어날 경우, 적절한 안내 메시지를 출력하여 유효한 범위 내의 숫자를 입력하도록 유도하세요.
- 플레이어가 게임을 반복하고 싶을 경우, 게임 재시작 여부를 묻고 그에 따라 게임을 초기화하거나 종료하는 기능을 추가하세요.
- 게임이 종료될 때 플레이어의 최고 시도 횟수를 기록하고, 다음 게임에서 이를 표시하는 기능을 구현하세요.
입출력 예시
→ 예시일 뿐 완전히 똑같이는 하지 않으셔도 돼요! 주어진 조건만 다 맞추시면 됩니다!
숫자를 입력하세요: 0
유효한 범위 내의 숫자를 입력하세요
숫자를 입력하세요: 5
업
숫자를 입력하세요: 7
업
숫자를 입력하세요: 8
맞았습니다
시도한 횟수: 3
다시 하시겠습니까? (y/n): y
이전 게임 플레이어 최고 시도 횟수: 3
숫자를 입력하세요: 5
다운
숫자를 입력하세요: 3
맞았습니다
시도한 횟수: 2
다시 하시겠습니까? (y/n): n
게임을 종료합니다
참고 자료:
- 랜덤 숫자 생성을 위한 random 모듈 사용법
import random
random_number = random.randint(1, 100)
직접도전
시작하기앞서 랜덤 모듈 사용법을 붙여넣어준다음 user_input = input("숫자를 입력하세요: ") 를 넣어주어 입력창을 만들었다 또 입력한 숫자를 인식하여 업다운 메시지를 출력시켜줘야 하기때문에 def 와 while 함수를 넣어 틀을 잡고
import random
def number_game():
random_number = random.randint(1, 100)
while True:
user_input = input("숫자를 입력하세요: ")
guess = check_int(user_input)
if문을 넣어 업, 다운을 출력시켜준다음 continue로 계속해서 다음 진행으로 넘어가게 만들었다
if not guess:
print("숫자를 입력해주세요")
continue
if guess < 1 or guess > 100:
print("유효한 범위 내의 숫자를 입력하세요")
continue
if guess < random_number:
print("업")
elif guess > random_number:
print("다운")
else:
print("정답입니다!")
break
if __name__ == "__main__":
number_game()
그리고 마지막에 break를 넣어 정답일 경우 게임을 끝내게 했다 여기서 추가적으로 추가도전과제 1번은 수행했으나 시행횟수 출력을 하는 방법을 고민하다 문뜩 음수와 소수점 표기에도 반응하게 만들고 싶어졌다 그래서 구글링을 통해 import random 아래에
def check_int(s):
if s[0] in ('-', '+'):
return s[1:].isdigit()
return s.isdigit()
해당 코드를 넣고 -1을 입력해 실행해 봤다 다행히 문자열로 인식하는 - + 를 제외한 숫자가 정상적으로 읽혀 업 다운 메시지가 표시되었지만 단순히 해당 명령어는 숫자앞의 - + 를 제외한 뒤 숫자만 읽히기 때문에 -1은 1로 -59는 59로 읽힌다
- 오늘의 회고
일단그래도 정답에 가깝게 나왔다 추가적으로 시도해보려는 시도도 좋은거같다 스스로 칭찬한다 요즘 만날 일찍 일어나고 잠이 부족한 피곤에 찌든 생활을 반복하다보니 약간 삐그덕 거린다 근데 아직 한달도 지나지 않았다! 그래서 쿠팡에서 몬스터 대량구매를 하게되었다...
'내일배움캠프 개발자과정 > TIL' 카테고리의 다른 글
내일배움캠프 10일차 TIL (0) | 2024.02.26 |
---|---|
내일배움캠프 9일차 TIL 및 한주정리 (1) | 2024.02.23 |
내일배움캠프 7일차 TIL (0) | 2024.02.21 |
내일배움캠프 6일차 TIL (0) | 2024.02.20 |
내일배움캠프 5일차 TIL (0) | 2024.02.19 |