Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
입력 기능
-서로 다른 3자리 수
-게임이 끝난 후 1,2 입력


출력 기능
-게임 시작문구 "숫자 야구 게임을 시작합니다." 출력
-입력한 수에 대한 결과 출력
-볼, 스트라이크 출력
-아무 것도 없을 시 "낫싱"출력
-일치 시 "3개의 숫자를 모두 맞히셨습니다! 게임 종료" 출력
-"게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요."출력

예외 처리 및 종료 기능능
-잘못된 값 입력 시 ValueError 발생, 프로그램 종료
-
Comment on lines +1 to +16
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

README.md 파일의 개선이 필요합니다.

다음과 같은 문제점들이 있습니다:

  1. "예외 처리 및 종료 기능능"에 오타가 있습니다.
  2. 입력값 제한사항(1-9 사이의 숫자만 가능)이 명시되어 있지 않습니다.
  3. 마크다운 형식을 제대로 활용하지 않아 가독성이 떨어집니다.

다음과 같이 수정하는 것을 제안합니다:

-입력 기능
-서로 다른 3자리 수
-게임이 끝난 후 1,2 입력
+# 숫자 야구 게임
 
+## 입력 기능
+- 서로 다른 3자리 수 입력
+  - 1부터 9까지의 숫자만 사용 가능
+  - 중복되지 않은 숫자여야 함
+- 게임이 끝난 후 1(새 게임) 또는 2(종료) 입력
 
+## 출력 기능
+- 게임 시작 문구: "숫자 야구 게임을 시작합니다." 출력
+- 입력한 수에 대한 결과 출력:
+  - 볼과 스트라이크 개수 출력
+  - 아무것도 없을 시 "낫싱" 출력
+  - 모두 일치 시 "3개의 숫자를 모두 맞히셨습니다! 게임 종료" 출력
+  - "게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요." 출력
 
-예외 처리 및 종료 기능능
-잘못된 값 입력 시 ValueError 발생, 프로그램 종료
--
+## 예외 처리 및 종료 기능
+- 다음과 같은 경우 ValueError 발생 후 프로그램 종료:
+  - 3자리가 아닌 숫자 입력
+  - 1-9 범위를 벗어난 숫자 입력
+  - 중복된 숫자 입력
+  - 숫자가 아닌 값 입력
+  - 게임 종료 시 1,2 이외의 값 입력
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
입력 기능
-서로 다른 3자리 수
-게임이 끝난 후 1,2 입력
출력 기능
-게임 시작문구 "숫자 야구 게임을 시작합니다." 출력
-입력한 수에 대한 결과 출력
-볼, 스트라이크 출력
-아무 것도 없을 시 "낫싱"출력
-일치 시 "3개의 숫자를 모두 맞히셨습니다! 게임 종료" 출력
-"게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요."출력
예외 처리 및 종료 기능능
-잘못된 값 입력 시 ValueError 발생, 프로그램 종료
-
# 숫자 야구 게임
## 입력 기능
- 서로 다른 3자리 수 입력
- 1부터 9까지의 숫자만 사용 가능
- 중복되지 않은 숫자여야 함
- 게임이 끝난 후 1(새 게임) 또는 2(종료) 입력
## 출력 기능
- 게임 시작 문구: "숫자 야구 게임을 시작합니다." 출력
- 입력한 수에 대한 결과 출력:
- 볼과 스트라이크 개수 출력
- 아무것도 없을 시 "낫싱" 출력
- 모두 일치 시 "3개의 숫자를 모두 맞히셨습니다! 게임 종료" 출력
- "게임을 새로 시작하려면 1, 종료하려면 2를 입력하세요." 출력
## 예외 처리 및 종료 기능
- 다음과 같은 경우 ValueError 발생 후 프로그램 종료:
- 3자리가 아닌 숫자 입력
- 1-9 범위를 벗어난 숫자 입력
- 중복된 숫자 입력
- 숫자가 아닌 값 입력
- 게임 종료 시 1,2 이외의 값 입력

93 changes: 89 additions & 4 deletions src/baseball/main.py
Original file line number Diff line number Diff line change
@@ -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)

Check warning on line 13 in src/baseball/main.py

View check run for this annotation

Codecov / codecov/patch

src/baseball/main.py#L13

Added line #L13 was not covered by tests

def ballandstrike(x,y) :
return print("%d볼 %d스트라이크"%(x,y))

def gamestart():
return print("숫자 야구 게임을 시작합니다")

Check warning on line 19 in src/baseball/main.py

View check run for this annotation

Codecov / codecov/patch

src/baseball/main.py#L19

Added line #L19 was not covered by tests

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("숫자만 입력 가능합니다")

Check warning on line 48 in src/baseball/main.py

View check run for this annotation

Codecov / codecov/patch

src/baseball/main.py#L48

Added line #L48 was not covered by tests

numbers = [int(x) for x in a]
if len(set(numbers)) != 3:
raise ValueError("중복되지 않은 숫자를 입력해주세요")

Check warning on line 52 in src/baseball/main.py

View check run for this annotation

Codecov / codecov/patch

src/baseball/main.py#L52

Added line #L52 was not covered by tests

if not all(1 <= x <= 9 for x in numbers):
raise ValueError("1부터 9까지의 숫자만 입력 가능합니다")

Check warning on line 55 in src/baseball/main.py

View check run for this annotation

Codecov / codecov/patch

src/baseball/main.py#L55

Added line #L55 was not covered by tests

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)

Check warning on line 76 in src/baseball/main.py

View check run for this annotation

Codecov / codecov/patch

src/baseball/main.py#L76

Added line #L76 was not covered by tests
elif strike==0 :
onlystrike(strike)

Check warning on line 78 in src/baseball/main.py

View check run for this annotation

Codecov / codecov/patch

src/baseball/main.py#L78

Added line #L78 was not covered by tests
elif ball!=0 and strike!=0 :
ballandstrike(ball,strike)
pick()
press = input().strip()
if press not in ['1', '2']:
raise ValueError("1 또는 2만 입력 가능합니다")

Check warning on line 84 in src/baseball/main.py

View check run for this annotation

Codecov / codecov/patch

src/baseball/main.py#L84

Added line #L84 was not covered by tests
if press == '2':
break




# 프로그램의 메인 로직을 여기에 구현

if __name__ == "__main__":
Expand Down
Loading