일상의 잡다한

숫자야구 볼 판정 코드를 작성해 봤음

눈길에발자욱 2024. 3. 19. 08:33

def get_feedback(guess, answer):
    strike = 0
    ball = 0
    for i in range(3):
        if guess[i] == answer[i]:
            strike += 1
        elif guess[i] in answer:
            ball += 1
    return strike, ball

# 사용자로부터 답을 입력받음
answer = input("3자리 숫자 답을 입력하세요: ")
while len(answer) != 3 or not answer.isdigit() or len(set(answer)) != 3:
    print("잘못된 입력입니다. 중복되지 않는 3자리 숫자를 입력해주세요.")
    answer = input("3자리 숫자 답을 입력하세요: ")

while True:
    # 사용자로부터 추측값을 입력받음
    guess = input("추측값을 입력하세요: ")
    if len(guess) != 3 or not guess.isdigit() or len(set(guess)) != 3:
        print("잘못된 입력입니다. 중복되지 않는 3자리 숫자를 입력해주세요.")
        continue

    # 스트라이크와 볼 개수를 계산
    strike, ball = get_feedback(guess, answer)

    print(f"스트라이크: {strike}, 볼: {ball}")

    # 정답을 맞췄다면 반복 종료
    if strike == 3:
        print("정답을 맞췄습니다!")
        break

 

 

 

 

이렇게 작동이 됩니다.

제가 처음에 3자리 수를 입력하고

또 3자리 수를 입력하면 처음에 입력한 것을 기준으로 스트라이크 볼 판정을 내립니다.

정답을 맞춰나가는 솔버 형식이 아니라

그냥 스트라이크 볼 몇 개인지 판정을 하는 코드입니다.

반응형