[필수 과제 4] Baseball

210804

사전 세팅

  • 없다

Is_digit

def is_digit(user_input_number):
    result = user_input_number.isdigit()
    return result
  • isdigit 를 이용해 자연수인지 판별한다.

    • isdigit 는 문자 뿐만 아니라 음수, 실수에 대해서도 False 를 반환한다.

Is_between_100_and_999

def is_between_100_and_999(user_input_number):
    result = 100 <= int(user_input_number) < 1000
    return result
  • 주어진 수의 범위를 조사한다

    • python은 부등호의 동시 비교가 가능하다

Is_duplicated_number

  • set() 을 이용해서 각 자리수가 중복되는지 검사한다.

Is_validated_number

  • 지금까지 구성한 세 함수에 대해 만족하는지 and 를 사용해서 조사한다.

    • is_duplicated_number 는 중복되면 아니므로 not을 조사한다.

Get_not_duplicated_three_digit_number

  • get_random_number() 함수로 임의의 수를 얻는다. 이 때 이 수가 유효하지 않으면 반복문을 통해서 다시 얻도록 한다.

Get_strikes_or_ball

  • strikes : 랜덤 넘버와 유저 입력을 zip 으로 비교해서 자리와 수를 동시에 검사한다

  • balls : 유저 입력을 기준으로 랜덤 넘버의 각 위치를 제외한 수에 대해 in 을 사용해서 검사한다.

Is_yes / Is_No

  • 주어진 문자를 대소문자 구분 없이 받아야 하므로 lower()

    • 소문자를 기준으로 검사할 것임

  • 소문자에 해당하는 'y'와 'yes' 둘 중 하나에 해당하는지 in 을 사용해서 검사

Main

user_input 에 대해 반복적으로 다음 조건을 수행한다

  • user_input == 0인가?

    • 종료

  • not is_validated_number : 유효한 수가 아닌가?

    • "Wrong Input" 출력 후 user_input 다시 입력받음

  • get_strikes_or_ball 함수를 통해 strike와 ball 구하기

  • strike == 3 인가?

    • 맞다 : 재시작에 대한 user_input 입력받음

      • is_yes 또는 is_no 에 해당하는가?

        • 해당한다 : 재시작 또는 종료

        • 해당하지 않는다 : 다시 입력받기

    • 아니다 : 반복문 재시작

      • 따로 작성할 코드는 없음

Last updated

Was this helpful?