-
Notifications
You must be signed in to change notification settings - Fork 6
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
base: mun
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
코드 잘 봤습니다!! 깔끔하고 멋진 코드네요!!
코드 작성 고생하셨습니다~
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 } | ||
} | ||
} |
There was a problem hiding this comment.
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
를 사용하는 편이 더 좋을 것 같다고 생각햇어요!
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") | ||
} | ||
} | ||
} |
There was a problem hiding this comment.
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]] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
게임의 진행 횟수와 시도 횟수를 2차원 배열로 저장하고 사용하시는게 인상 깊네요!!
혹시 2차원 배열을 선택한 이유를 알 수 있을까요??
처음부터 2차원 배열을 생각하셨는지, 아니면 다른걸 시도하다가 2차원 배열을 선택하셨는지 궁금해요!!(순수한 궁금증입니다🥹)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
저도 2차원 배열을 선택하신 이유가 궁금합니다~!
There was a problem hiding this 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] { |
There was a problem hiding this comment.
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 { |
There was a problem hiding this comment.
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]] |
There was a problem hiding this comment.
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]() |
There was a problem hiding this comment.
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 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
에러 처리의 경우 Error 프로토콜을 활용해보는 것도 좋아 보입니다!
개요
작업 내용