diff --git a/docs/README.md b/docs/README.md index e69de29..9c23cfe 100644 --- a/docs/README.md +++ b/docs/README.md @@ -0,0 +1,16 @@ +입력 기능 +-서로 다른 3자리 수 +-게임이 끝난 후 1,2 입력 + + +출력 기능 +-게임 시작문구 "숫자 야구 게임을 시작합니다." 출력 +-입력한 수에 대한 결과 출력 + -볼, 스트라이크 출력 + -아무 것도 없을 시 "낫싱"출력 + -일치 시 "3개의 숫자를 모두 맞히셨습니다! 게임 종료" 출력 + -"게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요."출력 + +예외 처리 및 종료 기능능 +-잘못된 값 입력 시 ValueError 발생, 프로그램 종료 +- \ No newline at end of file diff --git a/src/baseball/main.py b/src/baseball/main.py index cd8d2f3..d3b3a76 100644 --- a/src/baseball/main.py +++ b/src/baseball/main.py @@ -1,8 +1,93 @@ +import random + +def randomnumber(): + return random.sample(range(1, 10), 3) + +def nothing(): + return print("낫싱") + +def onlystrike(x): + return print("%d스트라이크"%x) + +def onlyball(x): + return print("%d볼"%x) + +def ballandstrike(x,y) : + return print("%d볼 %d스트라이크"%(x,y)) + +def gamestart(): + return print("숫자 야구 게임을 시작합니다") + +def pick(): + return print("게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요.") + def main(): - """ - 프로그램의 진입점 함수. - 여기에서 전체 프로그램 로직을 시작합니다. - """ + print('숫자 야구 게임을 시작합니다') + while 1: + + strike=0 + ball=0 + computer=randomnumber() + + + + + while 1: + + computer1=computer.copy() + + strike=0 + ball=0 + + a=input('숫자를 입력해주세요 :') + + if len(a) != 3: + raise ValueError("3자리 숫자를 입력해주세요") + + if not a.isdigit(): + raise ValueError("숫자만 입력 가능합니다") + + numbers = [int(x) for x in a] + if len(set(numbers)) != 3: + raise ValueError("중복되지 않은 숫자를 입력해주세요") + + if not all(1 <= x <= 9 for x in numbers): + raise ValueError("1부터 9까지의 숫자만 입력 가능합니다") + + user_numbers = numbers + + # 스트라이크 계산 + strike = sum(1 for i in range(3) if user_numbers[i] == computer[i]) + + # 볼 계산 + ball = sum(1 for i in range(3) for j in range(3) + if i != j and user_numbers[i] == computer[j]) + + computer=computer1 + + if ball==0 and strike ==0 : + nothing() + elif strike==3 : + onlystrike(strike) + print('게임 종료') + break + + elif ball==0 : + onlyball(ball) + elif strike==0 : + onlystrike(strike) + elif ball!=0 and strike!=0 : + ballandstrike(ball,strike) + pick() + press = input().strip() + if press not in ['1', '2']: + raise ValueError("1 또는 2만 입력 가능합니다") + if press == '2': + break + + + + # 프로그램의 메인 로직을 여기에 구현 if __name__ == "__main__":