사용한 함수: while, for, if, random, isdigit
UP & DOWN 게임 만들기
제작한 코드
# for문으로 스무고개 만들기
import random
import os
game_end = 'n'
wrong_number = 'y'
user_win = 'y'
while game_end != 'y':
# TODO 0. 1부터 100까지 랜덤으로 숫자를 뽑는다.
random_number = random.randint(1, 100)
print(f"사실 숫자는: {random_number}")
# TODO 1. 사용자에에게 게임의 규칙과 기회를 알려준다.
print('''
______________
|| ||
|| UP & DOWN ||
|| GAME ||
||____________||
|______________|
\\\\############\\\\
\\\\############\\\\
\ ____ \\
\_____\___\____\\
UP & DOWN 게임에 오신 당신을 환영합니다.
당신에게 주어진 기회는 단 20번....!
''')
life = 20
for i in range(life): #while문으로 쓰려면 while life > 0으로 사용
print(f"현재 당신의 기회: {life}번")
# TODO 2. 사용자에에게 숫자를 유추해 보라고 한다.
while wrong_number != 'n':
user_number = input("숫자를 유추하세요: ")
# TODO 3. 유추한 숫자가 컴퓨터가 생각한 숫자보다 크면 down, 아니면 up을 출력한다.
# TODO 4. 3을 반복한다. 사용자가 숫자를 맞추면 몇번만에 맞췄는지 알려준다.
if not user_number.isdigit():##사용자가 문자로 입력할 때
print("숫자로 입력해 주세요!")
elif int(user_number) < 0 or int(user_number) > 100: #사용자가 1부터 100까지의 숫자를 입력하지 않았을 때
print("1~100까지의 올바른 번호를 입력하세요")
else:
wrong_number = 'n'
if int(user_number) == random_number:
print(f'정답입니다! 컴퓨터가 생각한 숫자는 {random_number}이었습니다.')
print(f"{20-life+1}번 만에 정답을 맞췄습니다.")
user_win = 'y'
break
elif int(user_number) > random_number:
print("down")
life -= 1
elif int(user_number) < random_number:
print("up")
life -= 1
wrong_number = 'y'
if user_win == 'y':
break
if life == 0: ## 유저가 게임에서 실패했을 때
print(f"당신은 실패했습니다. 정답은 {random_number}였습니다.")
# TODO 5. 계속할 것인지 묻는다.
user_wants_continue = input("다시 하시겠습니까?(y/n): ").lower()
if user_wants_continue == 'y':
user_win = 'n'
wrong_number = 'y'
os.system("cls")
else:
game_end = 'y'
실행화면
문자로 답변했을 때
1~ 100까지의 숫자로 답변하지 않았을 때
동영상
'개발공부 > Python' 카테고리의 다른 글
[파이썬] 로보77게임 만들기(순서도, 1차코드, 미완) (0) | 2023.04.22 |
---|---|
[파이썬] 행맨 게임 만들기( while, random, if, isalpha(), random 활용) (0) | 2023.04.21 |
[파이썬] if문 개념 , if문 활용해 팀별 문제내고 풀기 (1) | 2023.04.21 |
[파이썬] 가위바위보 게임 만들기(for, while, if, random활용) (0) | 2023.04.21 |
[파이썬] while문으로 구구단 찍기, 별찍기 (0) | 2023.04.21 |