Higher or Lower (숫자 업다운 게임 프로젝트)

1

2

3

4

5

6

7

8

9

10


True일때 B값을 이어서 반복문에 넣고 다른 랜덤값과 비교하는 방법

11

  1. while문 밖에 B라는 랜덤값 하나를 받아 변수 선언
  2. while문 안에 A 와 B가 같다고 선언해 같은 값을 두 개 생성
  3. 하나를 또 랜덤 돌림
    ⇨ while문이 True면 True값이 A든 B든 상관없이 다시 반복 시작지점으로 올라와 A자리에 B값이 채워지고
    다른 하나는 랜덤값으로 돌려져 B값으로 들어감

True일 때 정답인 값이 유지되는 줄 알고 한참을 헤맸다;


Final Code

from art import logo, vs
from game_data import data
import random
from replit import clear

#딕셔너리 value값 가져와 변수 선언하는 함수 
def format_data(account) :
  account_name = account["name"]
  account_descr = account["description"]
  account_country = account["country"]
  return(f"{account_name}, a {account_descr}, from {account_country}")

#유저의 답이 맞는지 확인하는 함수
def check_answer(guess, a_followers, b_followers): 
  """Take the user guess and follower counts and returns if they got it right"""
  if a_followers > b_followers:
    return guess == "a"
  else:
    return guess == "b"




print(logo)
score = 0
game_should_continue = True
account_b = random.choice(data)

while game_should_continue:
  #데이터 리스트에서 임의의 값 가져오기
  account_a = account_b
  account_b = random.choice(data)

  #둘이 같은 값이 나오면 안됨
  while account_a == account_b:
    account_b = random.choice(data)
  
  print(f"Compare A: {format_data(account_a)}.")
  print(vs)
  print(f"Against B: {format_data(account_b)}.")
  
  #유저에게 질문하기. 대소문자 상관없이 결과 출력할 수 있게. guess변수에 치환
  guess = input("Who has more followers? Type '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"You're right! Current score: {score}.")
    
  else:
    game_should_continue = False
    print(f"Sorry, that's wrong. Final score: {score}")