-
Notifications
You must be signed in to change notification settings - Fork 231
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
[코드 리뷰용 PR입니다!] - 재구현 스터디 #248
base: main
Are you sure you want to change the base?
Conversation
regex를 사용하여 플레이어의 입력값이 1-9 사이의 숫자로 구성된 세 자릿수인지 Boolean으로 리턴받는다. 또한 Set 자료구조의 원소 중복이 불가한 특징을 이용해 서로 다른 숫자로 구성되어있는지를 검사하여 Boolean으로 리턴받는다. 리턴받은 두 개의 Boolean 값을 AND 하여 true가 되어야만 해당 값을 사용할 수 있도록 한다.
플레이어가 잘못된 값을 입력한 경우, IllegalArgumentException을 throw를 통해 발생한다.
strike, ball, nothing 변수를 생성해 각 조건에 맞게 해당 변수를 증가시켜 힌트를 결정하도록 하였다
This reverts commit 7031314.
strike, ball, nothing 변수를 생성해 각 조건에 맞게 해당 변수를 증가시켜 힌트를 결정하도록 하였다
…nd remove empty body
… according to the role
…ss according to the role
@@ -0,0 +1,18 @@ | |||
package baseball.util | |||
|
|||
object C { |
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.
C라는 이름 보다는 Constants라는 이름으로 정확한 의도를 드러내는 것이 나아보여요!
@@ -0,0 +1,17 @@ | |||
package baseball.util | |||
|
|||
object Validator { |
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.
1주차 피드백 내용에는 이름을 통하여 의도가 드러났다면 주석을 사용하지 않는 것이 좋다고 나와있습니다!
해당 함수들은 충분히 함수 명을 통하여 의도가 드러났기에 주석을 사용하지 않아도 될 것 같아요!😀
"1" -> false //종료 O, 재시작 X | ||
"2" -> true //종료 X , 재시작 O |
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"
도 C 클래스로 이동시켜 관리하는 것이 좋아보입니다!
else -> throw IllegalArgumentException() | ||
} | ||
} | ||
fun makeUserInputList(userInput: String) = userInput.chunked(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.
list.chunked()
라는 함수에 대해서 알아갑니당!! 편리한 내장 함수가 있었네요!😀
var (strike, ball) = Pair(0, 0) | ||
for (i in userInputList.indices) { | ||
if (userInputList[i] == randomNums[i]) strike++ | ||
else if ((userInputList[i] != randomNums[i]) && randomNums.contains(userInputList[i])) ball++ |
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.
이 부분에서
(userInputList[i] != randomNums[I])
부분은 지워두 될 것 같아요! 이미 if문을 통하여 확인해주었기에 그부분을 삭제해도 문제 없을 것 같아요!😀
private fun handleGameStart() { | ||
gamerOutputView.printInput().apply { | ||
userInput = gameInputView.getUserInput() | ||
checkUserInputValid(userInput) | ||
userInputList = gameInputView.makeUserInputList(userInput) | ||
} | ||
} |
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.
저는 주로 run만을 사용하였는데 이렇게 apply를 사용하니까 이런 상황에서는 더 가독성이 좋아지네요.
private fun checkRegexMatch(userInput: String): Boolean { | ||
val regex = C.INPUT_REGEX.toRegex() //1-9사이의 숫자로 구성된 세 자릿수 정규표현식 | ||
return regex.matches(userInput) | ||
} | ||
|
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.
.toRegex()라는 내장함수이 있다는 것은 알았는데 이렇게도 활용이 가능하다는 것은 처음 알았네요.😄
No description provided.