-
Notifications
You must be signed in to change notification settings - Fork 137
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
숫자 야구 [STEP1] Diana, Denny #204
base: ic_11_diana
Are you sure you want to change the base?
Conversation
class NumberBaseBall { | ||
var comNumList: Array<String> | ||
var userNumList: Array<String> | ||
var repeatTime: Int = 9 | ||
|
||
init(comNumList: Array<String>, userNumList: Array<String>) { | ||
self.comNumList = comNumList | ||
self.userNumList = userNumList | ||
} | ||
} |
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.
해당 객체도 별도의 파일로 구분하면 좋을 거 같습니다!😊
|
||
let numberBaseball = NumberBaseBall(comNumList: [], userNumList: []) |
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.
해당 객체를 빈배열로 넣어주는 이유가 있을까요?
10,11번째줄에서 NumberBaseBall의 초기값으로 주는 것과 차이가 있을까요?
|
||
import Foundation | ||
|
||
extension NumberBaseBall { |
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.
extension으로 하신 이유가 있을까요?
guard let input = readLine(), !input.isEmpty else { | ||
print("입력이 잘못 되었습니다.") | ||
continue | ||
} |
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.
현재와 같이 에러처리를 하게되면 빈값 이외의 잘못된 입력에 대한 예외처리가 안될 거 같습니다! Step2의 조건인 메뉴의 잘못된 입력 처리
의 예시를 참고하시어 수정해주세요😊
import Foundation | ||
|
||
extension NumberBaseBall { | ||
enum GameFunc: String { |
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.
swift에선 약어보단 풀네이밍이 선호됩니다😆
extension NumberBaseBall { | ||
func gameStart(){ | ||
generateNumber() | ||
userInputNumber() | ||
} | ||
} | ||
|
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️⃣ extension으로 하신 이유가 있을까요?
2️⃣ 별도의 파일로 분리한 이유가 있을까요?
파일을 분리하는 기준을 생각해보시면 좋을 거 같아요!
코드는 결국 협업을 위한 것이기 때문에 파일분리, 객체 extension은 근거가 필요합니다!
comNumList.append(randomNumStr) | ||
} | ||
} | ||
print("comNumList - \(comNumList)") |
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.
해당 부분은 확인을 위한 print 구문인 거 같습니다😊
삭제부탁드려요!
guard splitUserInput.count == 3 else { | ||
print("숫자 3개를 띄어쓰기로 구분하여 입력해주세요.") | ||
userInputNumber() | ||
return | ||
} |
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.
잘못된 입력 시 스텝에서 제시하는 조건에 맞추어 print구문 수정이 필요할 거 같습니다!
안녕하세요 Diana, Danny!😊 ✅ 프로젝트와 별개로 체크하실 부분
👍 전체적인 코드 작성 및 문법적인 부분에서 크게 수정요청드릴 부분은 없을 정도로 잘 짜신 거 같습니다! |
숫자야구 [STEP1], [STEP2] 완료
안녕하세요! @serena0720! 🥰
PR 요청 드립니다 🙏
코드 설명
파일 명: 설명
main: NumberBaseBall 인스턴스 생성 후 execute() 함수 실행
ExcuteGame(오타 ㅎㅎ): 메뉴를 입력받는 execute() 함수 구현
GameStart: 컴퓨터 랜덤함수 생성하는 generateNumber() 함수와 유저 인풋을 받는 userInputNumber() 함수 실행
GenerateNumber: 컴퓨터 랜덤함수 생성과 검증 구현
UserInputNumber: 유저 랜덤 숫자 입력과 검증 구현
CheckStrikeAndBall: 스트라이크와 볼 판정 및 게임 종료
고민한 점
마주한 문제점 및 해결 방법
문제점1: 게임이 9회 종료된 이후에 게임이 자동 재시작되는 문제
해결 방법: 스트라이크, 볼 체크 함수인 compare 함수에 While문이 씌워져있어 While문 제거
문제점2: 게임이 진행되지 않고 UserInput이 반복되는 오류 수정
해결방법: 불필요한 반복조건을 삭제하고 User가 숫자가 아닌 잘못된 값을 입력했을 경우 유저입력을 받는 함수 재 호출
🙏 감사합니다! 🙏