Higher or Lower (숫자 업다운 게임 프로젝트)
True일때 B값을 이어서 반복문에 넣고 다른 랜덤값과 비교하는 방법
- while문 밖에 B라는 랜덤값 하나를 받아 변수 선언
- while문 안에 A 와 B가 같다고 선언해 같은 값을 두 개 생성
- 하나를 또 랜덤 돌림
⇨ 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}")