Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

야구 게임 단계별 기능 구현 완료 #14

Open
wants to merge 28 commits into
base: mun
Choose a base branch
from

Conversation

name-mun
Copy link

@name-mun name-mun commented Nov 7, 2024

개요

  • 야구게임 구현

작업 내용

  • Lv1: 랜덤 숫자 생성 기능 구현
  • Lv2: 사용자의 입력값과 정답을 비교하여 결과 반환하는 기능 구현
  • Lv3: 랜덤 숫자 생성에 대한 제약 조건 수정
  • Lv4: 게임 시작 시 안내 문구 출력 기능 추가
  • Lv5: 게임 기록 저장 기능 구현
  • Lv6: 게임 종료하기 기능 구현

Jamong-mini and others added 27 commits November 4, 2024 11:38
- 풀 리퀘스트 작성 규칙 추가
- 띄어쓰기 문제 수정
야구 게임 단계별 기능 구현 완료
@name-mun name-mun self-assigned this Nov 7, 2024
Copy link

@Crois0509 Crois0509 left a comment

Choose a reason for hiding this comment

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

코드 잘 봤습니다!! 깔끔하고 멋진 코드네요!!
코드 작성 고생하셨습니다~

Comment on lines +38 to +45
for i in randomNumber.indices {
for j in input.indices {
// 자리&숫자 같으면 스트라이크
if i == j && randomNumber[i] == input[j] { strike += 1 }
// 숫자만 같으면 볼
else if randomNumber[i] == input[j] { ball += 1 }
}
}

Choose a reason for hiding this comment

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

처음보는 방식의 정답을 체크하는 방법이네요!! 메소드 없이 for-in문으로 구현하신게 멋져요!!
처음보고 볼이 안나오는거 아닌가? 하고 자세히 보니 제가 잘못 생각하고 있었다는걸 알 수 있었습니다ㅎㅎ

제가 indices라는 배열의 메소드를 사용해보지 않아서 개인적인 궁금증으로 만약 randomNumber 배열에 멤버가 없으면, 즉 인덱스가 없으면 에러가 발생할까?? 실험을 해봤습니다만...
결과는 그냥 for-in문이 실행되지 않고 에러 없이 무사히 넘어가더라구요!!
범위연산자를 쓰면 a...b일 때 b가 a보다 크지 않으면 에러가 발생하기도 해서 안정성을 생각하면 indices를 사용하는 편이 더 좋을 것 같다고 생각햇어요!

Comment on lines +2 to +23
enum Result {
case success
case strikeBall
case strike
case ball
case out

func printResult(strike: Int, ball: Int) {
switch self {
case .success :
print("정답입니다!\n")
case .strikeBall:
print("\(strike)스트라이크 \(ball)볼\n")
case .strike:
print("\(strike)스트라이크\n")
case .ball:
print("\(ball)볼\n")
case .out:
print("Out\n")
}
}
}

Choose a reason for hiding this comment

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

결과 출력을 enum으로 하신게 가독성도 좋고 깔끔해서 좋네요!!
저는 if문만 사용해서 지저분해 보이는데... 한 수 배우고 갑니다!

print("레벨을 선택하세요 (1, 2, 4, 5, 6):")
class BaseballGame {
// 게임 기록을 저장할 2차원 배열 생성
var gameHistory = [[0],[0]]

Choose a reason for hiding this comment

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

게임의 진행 횟수와 시도 횟수를 2차원 배열로 저장하고 사용하시는게 인상 깊네요!!
혹시 2차원 배열을 선택한 이유를 알 수 있을까요??
처음부터 2차원 배열을 생각하셨는지, 아니면 다른걸 시도하다가 2차원 배열을 선택하셨는지 궁금해요!!(순수한 궁금증입니다🥹)

Copy link
Contributor

Choose a reason for hiding this comment

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

저도 2차원 배열을 선택하신 이유가 궁금합니다~!

Copy link
Contributor

@ericKwon95 ericKwon95 left a comment

Choose a reason for hiding this comment

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

고생 많으셨습니다~~!


class RandomNumber {
// 서로 다른 임의수 3개를 만드는 함수
func makeRandomNumber() -> [Int] {
Copy link
Contributor

Choose a reason for hiding this comment

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

하나 배워갑니다~~

@@ -0,0 +1,23 @@
// 결과값의 열겨형
enum Result {
Copy link
Contributor

Choose a reason for hiding this comment

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

케이스마다 enum 사용하신 부분 좋습니다~~!

print("레벨을 선택하세요 (1, 2, 4, 5, 6):")
class BaseballGame {
// 게임 기록을 저장할 2차원 배열 생성
var gameHistory = [[0],[0]]
Copy link
Contributor

Choose a reason for hiding this comment

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

저도 2차원 배열을 선택하신 이유가 궁금합니다~!

// 서로 다른 임의수 3개를 만드는 함수
func makeRandomNumber() -> [Int] {
// 랜덤 숫자를 저장할 Set 생성
var randomNumber = [Int]()
Copy link
Contributor

Choose a reason for hiding this comment

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

요 프로퍼티는 쓰이지 않는 것 같아서,, 없어도 될 것 같아요!
혹시 쓰이는 곳이 있나요?

@@ -0,0 +1,24 @@
class InputError {
Copy link
Contributor

Choose a reason for hiding this comment

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

에러 처리의 경우 Error 프로토콜을 활용해보는 것도 좋아 보입니다!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants