From 67bc20c85e788e5f9fa5323650737cc95acaae67 Mon Sep 17 00:00:00 2001 From: Youngin Jeong <105589421+jyi0226@users.noreply.github.com> Date: Sat, 8 Mar 2025 18:34:27 +0900 Subject: [PATCH 01/10] Update main.py --- src/baseball/main.py | 71 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 65 insertions(+), 6 deletions(-) diff --git a/src/baseball/main.py b/src/baseball/main.py index cd8d2f3..14b94ca 100644 --- a/src/baseball/main.py +++ b/src/baseball/main.py @@ -1,10 +1,69 @@ +import random + +def check_valid_input(): + arr_list=list(input("숫자를 입력하세요: ")) + + if len(arr_list)!=3: + raise ValueError("3 자리 숫자를 입력하세요") + for i in range(3): + if not arr_list[i].isdigit(): + raise ValueError("정수를 입력하세요") + + if len(arr_list) != len(set(arr_list)): + raise ValueError("중복된 숫자를 입력하였습니다") + + return [int(x) for x in arr_list] + +def make_num(): + return random.sample(range(1,10),3) + +def input_num(): + return check_valid_input() + +def check(com,arr): + strikes=0 + balls=0 + + for i in range(3): + if arr[i]==com[i]: + strikes+=1 + else: + if arr[i] in com: + balls+=1 + + return strikes, balls + +def game(): + com=make_num() + + while(1): + arr=input_num() + strikes, balls = check(com,arr) + + if strikes==0 and balls==0: + print("낫싱") + elif strikes==3: + print("3스트라이크") + print("3개의 숫자를 모두 맞히셨습니다! 게임 종료") + break + else: + print(f"{balls}볼 {strikes}스트라이크") + def main(): - """ - 프로그램의 진입점 함수. - 여기에서 전체 프로그램 로직을 시작합니다. - """ - # 프로그램의 메인 로직을 여기에 구현 + print("숫자 야구 게임을 시작합니다.") + + while(1): + try: + game() + print("게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요.") + if int(input())==1: + continue + elif int(input())==2: + break + except ValueError as e: + print(e) + break + if __name__ == "__main__": - # 프로그램이 직접 실행될 때만 main() 함수를 호출 main() From 588494ed13432e5a81943141e7058645f4a1c467 Mon Sep 17 00:00:00 2001 From: Youngin Jeong <105589421+jyi0226@users.noreply.github.com> Date: Sat, 8 Mar 2025 18:40:07 +0900 Subject: [PATCH 02/10] =?UTF-8?q?=EA=B2=8C=EC=9E=84=20=EC=9E=AC=EC=8B=9C?= =?UTF-8?q?=EC=9E=91=20=EC=8B=9C=20=EC=98=88=EC=99=B8=EC=82=AC=ED=95=AD=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/baseball/main.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/baseball/main.py b/src/baseball/main.py index 14b94ca..672e496 100644 --- a/src/baseball/main.py +++ b/src/baseball/main.py @@ -14,6 +14,13 @@ def check_valid_input(): return [int(x) for x in arr_list] +def regame(): + val=input() + if val in ["1","2"]: + return int(val) + else: + raise ValueError("1혹은 2를 입력해주세요.") + def make_num(): return random.sample(range(1,10),3) @@ -57,9 +64,9 @@ def main(): try: game() print("게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요.") - if int(input())==1: + if regame()==1: continue - elif int(input())==2: + elif regame()==2: break except ValueError as e: print(e) From afc67549eaf64ea790864ae47dfd44fc83100775 Mon Sep 17 00:00:00 2001 From: Youngin Jeong <105589421+jyi0226@users.noreply.github.com> Date: Sun, 9 Mar 2025 08:59:40 +0900 Subject: [PATCH 03/10] =?UTF-8?q?=EC=9E=AC=EC=8B=9C=EC=9E=91=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/baseball/main.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/baseball/main.py b/src/baseball/main.py index 672e496..079b283 100644 --- a/src/baseball/main.py +++ b/src/baseball/main.py @@ -15,7 +15,7 @@ def check_valid_input(): return [int(x) for x in arr_list] def regame(): - val=input() + val = input("게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요.: ") if val in ["1","2"]: return int(val) else: @@ -63,7 +63,6 @@ def main(): while(1): try: game() - print("게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요.") if regame()==1: continue elif regame()==2: From 97d9fc48c7b967b29fc3342be5ee52aa6b39fe05 Mon Sep 17 00:00:00 2001 From: Youngin Jeong <105589421+jyi0226@users.noreply.github.com> Date: Sun, 9 Mar 2025 09:01:27 +0900 Subject: [PATCH 04/10] =?UTF-8?q?=EB=B9=84=EA=B5=90=20=ED=95=A8=EC=88=98?= =?UTF-8?q?=20=EC=8A=A4=ED=83=80=EC=9D=BC=20=EB=B0=91=20=EA=B0=80=EB=8F=85?= =?UTF-8?q?=EC=84=B1=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/baseball/main.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/baseball/main.py b/src/baseball/main.py index 079b283..82e7418 100644 --- a/src/baseball/main.py +++ b/src/baseball/main.py @@ -27,16 +27,21 @@ def make_num(): def input_num(): return check_valid_input() -def check(com,arr): +def check(com, arr): + """ + 숫자 야구 게임의 결과를 계산하는 함수 + - 같은 위치에 같은 숫자가 있으면 스트라이크 + - 다른 위치에 같은 숫자가 있으면 볼 + """ strikes=0 balls=0 for i in range(3): - if arr[i]==com[i]: - strikes+=1 + if arr[i] == com[i]: + strikes += 1 else: if arr[i] in com: - balls+=1 + balls += 1 return strikes, balls From e59b512bb50ee91fc8e742b3f4641914313a5268 Mon Sep 17 00:00:00 2001 From: Youngin Jeong <105589421+jyi0226@users.noreply.github.com> Date: Sun, 9 Mar 2025 09:04:32 +0900 Subject: [PATCH 05/10] =?UTF-8?q?=EB=A9=94=EC=9D=B8=20=ED=95=A8=EC=88=98?= =?UTF-8?q?=20=EC=8A=A4=ED=83=80=EC=9D=BC=20=EB=B0=8F=20=EB=A1=9C=EC=A7=81?= =?UTF-8?q?=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/baseball/main.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/baseball/main.py b/src/baseball/main.py index 82e7418..a10b907 100644 --- a/src/baseball/main.py +++ b/src/baseball/main.py @@ -65,16 +65,17 @@ def main(): print("숫자 야구 게임을 시작합니다.") - while(1): + while True: try: game() - if regame()==1: + choice = regame() + if choice == 1: continue - elif regame()==2: + elif choice == 2: break except ValueError as e: print(e) - break + raise if __name__ == "__main__": main() From 7fd8baedd8c46c2a252e384d699782be6591151c Mon Sep 17 00:00:00 2001 From: Youngin Jeong <105589421+jyi0226@users.noreply.github.com> Date: Sun, 9 Mar 2025 09:16:27 +0900 Subject: [PATCH 06/10] =?UTF-8?q?=EA=B2=8C=EC=9E=84=20=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=20=EC=8A=A4=ED=83=80=EC=9D=BC=20=EB=B0=8F=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/baseball/main.py | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/baseball/main.py b/src/baseball/main.py index a10b907..5785313 100644 --- a/src/baseball/main.py +++ b/src/baseball/main.py @@ -1,19 +1,19 @@ import random def check_valid_input(): - arr_list=list(input("숫자를 입력하세요: ")) + arr_list = list(input("숫자를 입력하세요: ")) - if len(arr_list)!=3: + if len(arr_list) != 3: raise ValueError("3 자리 숫자를 입력하세요") for i in range(3): - if not arr_list[i].isdigit(): - raise ValueError("정수를 입력하세요") - + if not arr_list[i].isdigit(): + raise ValueError("정수를 입력하세요") if len(arr_list) != len(set(arr_list)): raise ValueError("중복된 숫자를 입력하였습니다") return [int(x) for x in arr_list] + def regame(): val = input("게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요.: ") if val in ["1","2"]: @@ -21,12 +21,15 @@ def regame(): else: raise ValueError("1혹은 2를 입력해주세요.") + def make_num(): return random.sample(range(1,10),3) + def input_num(): return check_valid_input() + def check(com, arr): """ 숫자 야구 게임의 결과를 계산하는 함수 @@ -45,22 +48,24 @@ def check(com, arr): return strikes, balls + def game(): - com=make_num() + com = make_num() while(1): - arr=input_num() - strikes, balls = check(com,arr) + arr = input_num() + strikes, balls = check(com, arr) - if strikes==0 and balls==0: + if strikes == 0 and balls == 0: print("낫싱") - elif strikes==3: + elif strikes == 3: print("3스트라이크") print("3개의 숫자를 모두 맞히셨습니다! 게임 종료") break else: print(f"{balls}볼 {strikes}스트라이크") + def main(): print("숫자 야구 게임을 시작합니다.") From 76f6f9d7445cbeb337957a144ca267101eee0070 Mon Sep 17 00:00:00 2001 From: Youngin Jeong <105589421+jyi0226@users.noreply.github.com> Date: Sun, 9 Mar 2025 09:19:42 +0900 Subject: [PATCH 07/10] =?UTF-8?q?=EC=9E=85=EB=A0=A5=20=ED=95=A8=EC=88=98?= =?UTF-8?q?=20=EC=8A=A4=ED=83=80=EC=9D=BC=20=EB=B0=8F=20=EB=A1=9C=EC=A7=81?= =?UTF-8?q?=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/baseball/main.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/baseball/main.py b/src/baseball/main.py index 5785313..cf6f460 100644 --- a/src/baseball/main.py +++ b/src/baseball/main.py @@ -8,6 +8,8 @@ def check_valid_input(): for i in range(3): if not arr_list[i].isdigit(): raise ValueError("정수를 입력하세요") + if int(arr_list[i]) < 1 or int(arr_list[i] > 9: + raise ValueError("1부터 9까지의 숫자만 입력하세요") if len(arr_list) != len(set(arr_list)): raise ValueError("중복된 숫자를 입력하였습니다") From f030d6b9ab5c0f736a4062ca8ac34ec225b0a057 Mon Sep 17 00:00:00 2001 From: Youngin Jeong <105589421+jyi0226@users.noreply.github.com> Date: Sun, 9 Mar 2025 16:46:36 +0900 Subject: [PATCH 08/10] =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EC=8A=A4=ED=83=80?= =?UTF-8?q?=EC=9D=BC=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/baseball/main.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/baseball/main.py b/src/baseball/main.py index cf6f460..821b508 100644 --- a/src/baseball/main.py +++ b/src/baseball/main.py @@ -8,7 +8,7 @@ def check_valid_input(): for i in range(3): if not arr_list[i].isdigit(): raise ValueError("정수를 입력하세요") - if int(arr_list[i]) < 1 or int(arr_list[i] > 9: + if int(arr_list[i]) < 1 or int(arr_list[i]) > 9: raise ValueError("1부터 9까지의 숫자만 입력하세요") if len(arr_list) != len(set(arr_list)): raise ValueError("중복된 숫자를 입력하였습니다") @@ -24,14 +24,17 @@ def regame(): raise ValueError("1혹은 2를 입력해주세요.") + def make_num(): - return random.sample(range(1,10),3) + return random.sample(range(1,10), 3) + def input_num(): return check_valid_input() + def check(com, arr): """ 숫자 야구 게임의 결과를 계산하는 함수 @@ -66,7 +69,8 @@ def game(): break else: print(f"{balls}볼 {strikes}스트라이크") - + + def main(): From dc75a7c2476e73c0025af719272b01b2791521ac Mon Sep 17 00:00:00 2001 From: Youngin Jeong <105589421+jyi0226@users.noreply.github.com> Date: Sun, 9 Mar 2025 16:51:25 +0900 Subject: [PATCH 09/10] =?UTF-8?q?=EC=A0=84=EC=B2=B4=20=EC=BD=94=EB=93=9C?= =?UTF-8?q?=20=EC=8A=A4=ED=83=80=EC=9D=BC=20PEP8=EC=97=90=20=EB=A7=9E?= =?UTF-8?q?=EA=B2=8C=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/baseball/main.py | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/src/baseball/main.py b/src/baseball/main.py index 821b508..742dc22 100644 --- a/src/baseball/main.py +++ b/src/baseball/main.py @@ -1,5 +1,6 @@ import random + def check_valid_input(): arr_list = list(input("숫자를 입력하세요: ")) @@ -18,31 +19,28 @@ def check_valid_input(): def regame(): val = input("게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요.: ") - if val in ["1","2"]: + if val in ["1", "2"]: return int(val) else: - raise ValueError("1혹은 2를 입력해주세요.") - + raise ValueError("1 혹은 2를 입력해주세요.") def make_num(): - return random.sample(range(1,10), 3) - + return random.sample(range(1, 10), 3) def input_num(): return check_valid_input() - def check(com, arr): """ 숫자 야구 게임의 결과를 계산하는 함수 - 같은 위치에 같은 숫자가 있으면 스트라이크 - 다른 위치에 같은 숫자가 있으면 볼 """ - strikes=0 - balls=0 + strikes = 0 + balls = 0 for i in range(3): if arr[i] == com[i]: @@ -56,8 +54,8 @@ def check(com, arr): def game(): com = make_num() - - while(1): + + while True: arr = input_num() strikes, balls = check(com, arr) @@ -71,9 +69,7 @@ def game(): print(f"{balls}볼 {strikes}스트라이크") - def main(): - print("숫자 야구 게임을 시작합니다.") while True: @@ -86,7 +82,8 @@ def main(): break except ValueError as e: print(e) - raise - + break + + if __name__ == "__main__": main() From 5413a341b586ef9ccc98986d0c26687ac45ad7ba Mon Sep 17 00:00:00 2001 From: Youngin Jeong <105589421+jyi0226@users.noreply.github.com> Date: Sun, 9 Mar 2025 16:58:42 +0900 Subject: [PATCH 10/10] Update main.py --- src/baseball/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/baseball/main.py b/src/baseball/main.py index 742dc22..2ce6e52 100644 --- a/src/baseball/main.py +++ b/src/baseball/main.py @@ -82,7 +82,7 @@ def main(): break except ValueError as e: print(e) - break + raise if __name__ == "__main__":