일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 웹크롤링
- 게임
- Endpoint
- Python
- udemy
- Sheety
- 프로그램
- 최저가
- 상태코드
- Pygame
- 유데미
- HTTP
- twilio
- 부트스트랩
- 계산기
- 파싱
- ndarray
- Tequila
- SMTP
- 쉬티
- API플랫폼
- phython
- API
- 오류
- class
- HTML
- Game
- 파이썬
- 프로젝트
- 웹페이지
- Today
- Total
데이터 분석가
파이썬(Python) Up-Down(숫자추측) 게임 프로젝트 본문
안녕하세요
제가 직접 그린 그림입니다 ㅎㅎ 어때요 잘 그렸나요
카이지
이번 시간에는 친구들과 가장 쉽게 할 수 있는 Up-Down(업다운) 숫자 추측 게임인데요
상대방이 마음 속에 정한 숫자를 맞추는 게임이죠 ~
logo = """
██╗ ██╗██████╗ ██████╗ ██████╗ ██╗ ██╗███╗ ██╗ ██████╗ █████╗ ███╗ ███╗███████╗ ██╗
██║ ██║██╔══██╗ ██╔══██╗██╔═══██╗██║ ██║████╗ ██║ ██╔════╝ ██╔══██╗████╗ ████║██╔════╝ ██║
██║ ██║██████╔╝ ██║ ██║██║ ██║██║ █╗ ██║██╔██╗ ██║ ██║ ███╗███████║██╔████╔██║█████╗ ██║
██║ ██║██╔═══╝ ██║ ██║██║ ██║██║███╗██║██║╚██╗██║ ██║ ██║██╔══██║██║╚██╔╝██║██╔══╝ ╚═╝
╚██████╔╝██║ ██████╔╝╚██████╔╝╚███╔███╔╝██║ ╚████║ ╚██████╔╝██║ ██║██║ ╚═╝ ██║███████╗ ██╗
╚═════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚══╝╚══╝ ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ ╚═╝
"""
저는 from art import logo 를 이용해서 해당 로고를 불러올 것이기 때문에 먼저 입력을 해두었습니다.
참고로 해당 ASCII 문자를 자동으로 출력해주는 편리한 사이트가 있는데요 아래 사이트를 확인해주세요
http://patorjk.com/software/taag/#p=display&h=0&f=ANSI%20Shadow&t=Up%20Down%20Game%20!
from random import randint
from art import logo #art라는 파일에서 logo를 가져온다
EASY_LEVEL_TURNS = 10 #'쉬움'모드는 기회 10번
HARD_LEVEL_TURNS = 5 #'어려움' 모드는 기회 5번
def check_answer(guess, answer, turns): #추측, 답, 기회
"""checks answer against guess. Returns the number of turns remaining."""
if guess > answer: #추측 > 답 일 경우
print("Too high") #너무 높다
return turns -1 #기회 1번 마이너스
elif guess < answer: #추측 < 답 일 경우
print("Too Low") #너무 낮다
return turns -1 #기회 1번 마이너스
else:
print(f"You Got It, answer was {answer}.") #정답일 경우 정답을 보여준다.
저는 이 게임의 난이도를 '쉬움', '어려움' 두 가지로 정했습니다
그리고 def check_answer(guess, answer, turns): 을 이용해 추측(guess), answer(정답), turns(기회)를 입력합니다
def 문 안의 if문을 통해 추측한 숫자가 아닐 경우 난이도 선택에 따라 주어진 turns(기회)를 -1 합니다.
def set_difficulty(): #'쉬움' or '어려움' 선택
level = input("Chiose a difficulty. Type 'easy' or 'hard': ")
if level == "easy": #easy 선택할 경우 EASY_LEVEL_TURNS을 반환
return EASY_LEVEL_TURNS
else: #나머지 경우는 HARD 이므로
return HARD_LEVEL_TURNS #HARD_LEVE_TURNS 5회 반환
level 난이도를 input 함수로 입력받아 '쉬움', '어려움' 중 하나를 선택해
각각의 해당 값을 리턴으로 받습니다.
def game():
print(logo)
print("Welcome to the Up-Down Game! ")
print("I'm thinking of a number between 1 and 100.")
answer = randint(1,100) #우리가 맞출 정답은 1,100 사이 랜덤하게 나온다
print(f"the corrct answer is {answer}") #정답은 {}이다
turns = set_difficulty() #'쉬움' '어려움'에 대한 5 or 10 기회
guess = 123123 #임의 변수로 어차피 초기화되므로 아무 숫자 가능
while guess != answer: #추측에 대한 기회 몇번 남았는지?
print(f"You have {turns} attempts remaining to guess the number.")
guess = int(input("Make a guess : ")) #추측할 숫자는?
turns = check_answer(guess, answer, turns)
if turns == 0: #기회가 0번 남았다면
print("You've run out of guessess, You LOSE") #패배
return
elif guess != answer: #기회가 0이 남기 전에 맞춘다면
print("Guess again") #승리
game() #게임을 시작합니다
난이도 설정을 통해 turns(기회)를 얻는 사전 작업을 끝냈으니
answer을 랜덤으로 추출하고 , guess를 입력받는 input 함수를 만듭니다 !
그리고 while 함수를 이용해 guess와 answer을 이용해 turns(기회)를 줄여나갑니다
만약 turns(기회)를 줄여나가는 도중에 answer = guess 값이 도출된다면
print(f"You Got It, answer was {answer}.") #정답일 경우 정답을 보여준다.
def 문 안에 있는 해당 출력으로 게임을 종료합니다 !
한번 만들어봅시다 !
감사합니다!
'파이썬(python) 프로젝트 모음' 카테고리의 다른 글
파이썬(Python) 커피 자판기 프로그램 (0) | 2023.03.24 |
---|---|
파이썬(Python) HigerLower 게임 프로젝트 (0) | 2023.03.24 |
파이썬(Python) 블랙잭(Blackjack) 프로젝트 (0) | 2023.03.22 |
파이썬(Python) 계산기(calculator) 프로그램 만들기 (0) | 2023.03.22 |
파이썬(Python) 경매(bidding) 프로젝트 (0) | 2023.03.21 |