데이터 분석가

파이썬(Python) HigerLower 게임 프로젝트 본문

파이썬(python) 프로젝트 모음

파이썬(Python) HigerLower 게임 프로젝트

PlintAn 2023. 3. 24. 10:00

안녕하세요

 

 

나루토 VS 사스케

나루토와 사스케가 싸우면 누가 이길까요?

 

나선환이 바릅니다

 

 

 

이번 시간에는 누가 더 많은 팔로우 수를 가지고 있는지 맞추는 게임입니다 !

 

 

즉 랜덤의 A, B 둘 중 누가 더 높은 팔로워들을 가지는 지 예측하여 점수를 얻는

 

게임을 만들어 보겠습니다 !

 

게임의 룰은

 

A  팔로워 vs B 팔로워팔로워가 많은 쪽을 추측하는 게임으로 

 

추측이 맞다면 score는 1씩 증가하게 되고 틀리다면 종료됩니다.

 

해당 로고와 게임 데이터들은 첨부파일에서 확인해주세요

game_data.py
0.01MB
art.py
0.00MB

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가 반환되어 종료됩니다.

Comments