Skip to content

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

@kominjin

Description

@kominjin
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스트라이크가 나와야 안내멘트가 뜨는 이유는 무엇인가요??

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions