@샤피로
Shapiro 안녕하세요!
7모둠 앨리와 호댕입니다.
step2 완료하여 PR 드려요! 리뷰 잘 부탁드립니다. :smile:
## 조언을 얻고 싶은 부분
1. 가위바위보와 묵찌빠를 각각 실행하면서 각 함수별 네이밍에 rockScissorsPaper, MukJjiBba를 넣었습니다. 이렇게 네이밍을 하는 것이 적합한지 궁금합니다.
2. `generateRandomNumber`는 가위바위보 게임의 rawValue를 넣었는데 현재 묵찌빠 게임에도 사용 중입니다. 사용에는 문제가 없으나 다시 사용해도 되는지 궁금합니다.
- 만약 이를 새롭게 만든다면 거의 똑같은 코드를 다시 반복해서 적어야 하는데 이게 더 나은 방향일까요?
- 아니면 해당 코드를 재생산성이 높게 만들 수 있을까요?
3. `computerValue`와 `userInputValue`를 비교하는 함수에서 묵찌빠, 가위바위보에서 서로 다른 로직을 사용했습니다.
- 어제 말씀해주신 것에 따르면 묵찌빠 로직이 조금 더 가독성이 높다고 생각되는데 Shapiro의 의견이 궁금합니다.:pray:
- 여기서도 하나의 로직으로 통일한다면 거의 유사한 코드를 반복해야 하는 문제가 있습니다 :cry:
## 고민되었던 점과 해결 방법
1. 오류처리를 위한 열거형을 만들어보았습니다! 사용자 입력을 받아 String -> Int 변환을 해주는 `convertUserInputType()`함수에서 오류를 던지고, 해당 함수가 호출되는 `runRockScissorsPaper()`의 switch문에서 do-catch를 사용해 오류를 처리해주었어요. 지금 step에서 발생할 수 있는 오류는 입력값과 관련된 오류라고 생각해서 error case를 invalidInput만 지정해주었습니다.
2. 열거형을 활용해 코드를 작성해보려고 했습니다.`RockScissorsPaper`, `MukJjiBba`, `GameMessage`, `GameMenu`를 열거형으로 구현했습니다. 좀 더 깔끔해졌다는 느낌이 들었어요. :kissing_smiling_eyes: