TEAMLAB-Lecture / python-101-for-data-science-by-pknu

1 stars 14 forks source link

baseball_game main 함수 질문드립니다. #31

Open kominjin opened 2 years ago

kominjin commented 2 years ago
print("Play Baseball")
user_input = 999
alswls=True
while alswls == True:
    random_number = str(get_not_duplicated_three_digit_number())
    print("Random Number is : ", random_number)
    while (get_strikes_or_ball(user_input, random_number) != [3, 0]):
        user_input = input('Input guess number:')
        if is_validated_number(user_input) == True or user_input == 0:
            if user_input==0:
                alswls= False
                break
            elif is_validated_number(user_input) == True:
                get_strikes_or_ball(user_input,random_number)
                print("Strikes : " + str(get_strikes_or_ball(user_input,random_number)[0]) + ","+"Balls: " + str(get_strikes_or_ball(user_input,random_number)[1]))
        elif is_validated_number(user_input) != True or user_input != 0:
            print("Wrong Input, Try again")

    while get_strikes_or_ball(user_input, random_number) == [3, 0]:
        omi=input("You win, one more(Y/N) ? ")
        if is_yes(omi)==True:
            alswls=False
            break
        elif is_no(omi)==True:
            random_number = str(get_not_duplicated_three_digit_number())
            print("Random Number is : ", random_number)
            while get_strikes_or_ball(user_input, random_number) != [3, 0]:
                user_input = input('Input guess number:')
                if is_validated_number(user_input) == True or user_input == 0:
                    if user_input==0:  
                        alswls= False
                        break  
                    elif is_validated_number(user_input) == True:
                        get_strikes_or_ball(user_input,random_number)
                        print("Strikes : " + str(get_strikes_or_ball(user_input,random_number)[0]) + ","+"Balls: " + str(get_strikes_or_ball(user_input,random_number)[1]))
                elif is_validated_number(user_input) != True or user_input != 0:
                    print("Wrong Input, Try again")       
            if get_strikes_or_ball(user_input, random_number) == [3, 0]:
                breaker=True
                break

코드는 이렇게 작성했습니다. 더 많은 문제가 있을 것 같지만 제가 보이는 문제점은 두개입니다.

  1. 0을 입력하였을 때 프로그램이 종료되지 않고 wrong input, try again이 뜹니다. user_input이 0일 때 alswls을 False로 만들어주면 4번째 줄 while은 alswls이 True일 때만 다루니까 4번째 while을 빠져나갈 것이라고 생각했는데 생각대로 안됩니다. 바로 4번째 줄 while을 빠져나가려면 어떻게 해야하나요?
  2. 한번 스트라이크 3번이 나오고 You win, one more(Y/N) ? 여기서 no를 입력하면 다시 게임이 전개되는 것 까진 되는데 총 2번 3스트라이크가 나와야지 다시 안내멘트인 You win, one more(Y/N) ? 이 나옵니다. if get_strikes_or_ball(user_input, random_number) == [3, 0]:여기서 while get_strikes_or_ball(user_input, random_number) == [3, 0]:로 나가고 싶은데 어떻게 해야 나갈 수 있나요? 또 총 2번 3스트라이크가 나와야 안내멘트가 뜨는 이유는 무엇인가요??