일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Pygame
- 최저가
- 오류
- Game
- HTML
- 파이썬
- 웹페이지
- 부트스트랩
- 상태코드
- 유데미
- Python
- 계산기
- udemy
- 프로그램
- Sheety
- API
- twilio
- 쉬티
- 파싱
- phython
- HTTP
- SMTP
- 웹크롤링
- Tequila
- 게임
- API플랫폼
- Endpoint
- class
- ndarray
- 프로젝트
Archives
- Today
- Total
데이터 분석가
파이썬(Python) HigerLower 게임 프로젝트 본문
안녕하세요
나루토와 사스케가 싸우면 누가 이길까요?
나선환이 바릅니다
이번 시간에는 누가 더 많은 팔로우 수를 가지고 있는지 맞추는 게임입니다 !
즉 랜덤의 A, B 둘 중 누가 더 높은 팔로워들을 가지는 지 예측하여 점수를 얻는
게임을 만들어 보겠습니다 !
게임의 룰은
A 팔로워 vs B 팔로워 중 팔로워가 많은 쪽을 추측하는 게임으로
추측이 맞다면 score는 1씩 증가하게 되고 틀리다면 종료됩니다.
해당 로고와 게임 데이터들은 첨부파일에서 확인해주세요
logo = """
██╗ ██╗██╗ ██████╗ ██╗ ██╗███████╗██████╗
██║ ██║██║██╔════╝ ██║ ██║██╔════╝██╔══██╗
███████║██║██║ ███╗███████║█████╗ ██████╔╝
██╔══██║██║██║ ██║██╔══██║██╔══╝ ██╔══██╗
██║ ██║██║╚██████╔╝██║ ██║███████╗██║ ██║
╚═╝ ╚═╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
██╗ ██████╗ ██╗ ██╗███████╗██████╗
██║ ██╔═══██╗██║ ██║██╔════╝██╔══██╗
██║ ██║ ██║██║ █╗ ██║█████╗ ██████╔╝
██║ ██║ ██║██║███╗██║██╔══╝ ██╔══██╗
███████╗╚██████╔╝╚███╔███╔╝███████╗██║ ██║
╚══════╝ ╚═════╝ ╚══╝╚══╝ ╚══════╝╚═╝ ╚═╝
██████╗ █████╗ ███╗ ███╗███████╗ ██╗
██╔════╝ ██╔══██╗████╗ ████║██╔════╝ ██║
██║ ███╗███████║██╔████╔██║█████╗ ██║
██║ ██║██╔══██║██║╚██╔╝██║██╔══╝ ╚═╝
╚██████╔╝██║ ██║██║ ╚═╝ ██║███████╗ ██╗
╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ ╚═╝
"""
vs = """
██╗ ██╗███████╗
██║ ██║██╔════╝
██║ ██║███████╗
╚██╗ ██╔╝╚════██║
╚████╔╝ ███████║
╚═══╝ ╚══════╝
"""
다음과 같은 로고가 있습니다.
from art import logo, vs
import random
from game_data import data
from replit import clear #게임에서 졌을 경우 초기화
def get_random_account(): #랜덤 계정 추출
"""data 딕셔너리로부터 랜덤 계정 추출"""
return random.choice(data)
game_data 파일에서 data = {} 딕셔너리에는 50명의 해외 가수들의
이름, 팔로워 수, 설명, 사는곳에 대해 기입 돼 있습니다.
def foramt_data(account): #data 딕셔너리에 있는 50명을 각각의 계정이라고 명명
"""인쇄 가능한 형식으로 계정 형식 지정: 이름, 설명 및 국가"""
name = account["name"] #data 딕셔너리의 이름에 해당하는 value 값을 반환
description = account["description"] #data 딕셔너리의 설명에 해당하는 value를 반환
country = account["country"] #data 딕셔너리의 도시에 해앋하는 value를 반환
return f"{name}, a {description}, from {country}" #위 정보를 출력합니다
def check_answer(guess, a_followers, b_followers): #추측, A,B 변수에 의해 정답 체크 선언
"""사용자의 추측에 대해 팔로어를 확인합니다.
추측이 맞으면 True를 반환합니다.
또는 추측이 틀렸다면 False입니다."""
if a_followers > b_followers: #만약 A의 팔로워보다 B의 팔로워가 많다면
return guess == "a" #'A'를 반환
else: #반대의 경우
return guess == "b" #'B'를 반환
def foramt_data(account): data 딕셔너리의 50명을 계정이라고 명명하고
이름, 설명, 도시를 인덱싱하여 출력합니다
해당 계정들의 팔로워 수를 인덱싱하여 가져와 비교하고 높은 쪽을 반환합니다.
def game():
print(logo)
score = 0
game_should_countinue = True
account_a = get_random_account()
account_b = get_random_account()
while game_should_countinue:
account_a = account_b
account_b = get_random_account()
while account_a == account_b:
account_b = get_random_account()
print(f"비교 A: {format_data(account_a)}.")
print(vs)
print(f"비교 B: {format_data(account_b)}.")
guess = input("누가 더 많은 팔로워를 가졌을까요? 'A' OR 'B' : ").lower()
a_follower_count = account_a["follower_count"]
b_follower_count = account_b["follower_count"]
is_correct = check_answer(guess, a_follower_count, b_follower_count)
clear()
print(logo)
if is_correct:
score += 1
print(f"당신이 맞습니다 ! 현재 점수 : {score}.")
else:
game_should_countinue = False
print(f"미안하지만, 그것은 틀렸습니다. 최종 점수는 {score} 입니다.")
game()
이 전까지의 def 선언문들은 딕셔너리를 가져오기 위한 사전작업이었습니다
def game()을 선언하고 logo를 가져오고 score는 0부터 시작합니다
각각의 A, B는 randidnt 함수를 이용해 1번 계정 ~ 50번 계정 중 무작위 선택됩니다
check_answer이 적용 되어 추측이 맞다면 True가 반환되어 score+1로
점수를 쌓게 됩니다. 만약 추측이 틀렸다면 Flase가 반환되어 종료됩니다.
'파이썬(python) 프로젝트 모음' 카테고리의 다른 글
파이썬(Python) 퀴즈 프로그램(quizprogram) 프로젝트 (0) | 2023.03.27 |
---|---|
파이썬(Python) 커피 자판기 프로그램 (0) | 2023.03.24 |
파이썬(Python) Up-Down(숫자추측) 게임 프로젝트 (0) | 2023.03.23 |
파이썬(Python) 블랙잭(Blackjack) 프로젝트 (0) | 2023.03.22 |
파이썬(Python) 계산기(calculator) 프로그램 만들기 (0) | 2023.03.22 |
Comments