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

[코드 리뷰용 PR입니다!] - 재구현 스터디 #248

Open
wants to merge 40 commits into
base: main
Choose a base branch
from

Conversation

getupminaaa
Copy link

No description provided.

getupminaaa and others added 30 commits October 19, 2023 23:19
regex를 사용하여 플레이어의 입력값이 1-9 사이의 숫자로 구성된 세 자릿수인지 Boolean으로 리턴받는다.
또한 Set 자료구조의 원소 중복이 불가한 특징을 이용해 서로 다른 숫자로 구성되어있는지를 검사하여 Boolean으로 리턴받는다.
리턴받은 두 개의 Boolean 값을 AND 하여 true가 되어야만 해당 값을 사용할 수 있도록 한다.
플레이어가 잘못된 값을 입력한 경우, IllegalArgumentException을 throw를 통해 발생한다.
strike, ball, nothing 변수를 생성해 각 조건에 맞게 해당 변수를 증가시켜 힌트를 결정하도록 하였다
strike, ball, nothing 변수를 생성해 각 조건에 맞게 해당 변수를 증가시켜 힌트를 결정하도록 하였다
@@ -0,0 +1,18 @@
package baseball.util

object C {
Copy link

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 {
Copy link

Choose a reason for hiding this comment

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

1주차 피드백 내용에는 이름을 통하여 의도가 드러났다면 주석을 사용하지 않는 것이 좋다고 나와있습니다!
해당 함수들은 충분히 함수 명을 통하여 의도가 드러났기에 주석을 사용하지 않아도 될 것 같아요!😀

Comment on lines +12 to +13
"1" -> false //종료 O, 재시작 X
"2" -> true //종료 X , 재시작 O
Copy link

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)
Copy link

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++
Copy link

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문을 통하여 확인해주었기에 그부분을 삭제해도 문제 없을 것 같아요!😀

Comment on lines +35 to +41
private fun handleGameStart() {
gamerOutputView.printInput().apply {
userInput = gameInputView.getUserInput()
checkUserInputValid(userInput)
userInputList = gameInputView.makeUserInputList(userInput)
}
}

Choose a reason for hiding this comment

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

저는 주로 run만을 사용하였는데 이렇게 apply를 사용하니까 이런 상황에서는 더 가독성이 좋아지네요.

Comment on lines +10 to +14
private fun checkRegexMatch(userInput: String): Boolean {
val regex = C.INPUT_REGEX.toRegex() //1-9사이의 숫자로 구성된 세 자릿수 정규표현식
return regex.matches(userInput)
}

Choose a reason for hiding this comment

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

.toRegex()라는 내장함수이 있다는 것은 알았는데 이렇게도 활용이 가능하다는 것은 처음 알았네요.😄

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.

3 participants