- 숫자야구 게임은 사용자가 입력한 수와 임의로 생성한 정수를 비교하는 게임입니다.
- 9번의 기회 안에 3 스트라이크를 얻어내면 사용자가 승리합니다.
baem | 준호 |
---|---|
- STEP 1
- 임의의 세 자리 정수 생성 함수 추가
- 두 세자리 정수를 비교하는 함수 추가
- 숫자야구 게임 실행 함수 추가
- STEP 2
- 사용자에게서 메뉴 번호를 입력받는 함수 추가
- 사용자에게서 세 자리 정수를 입력받는 함수 추가
- 입력받은 메뉴 번호 유효성 검사하는 함수 추가
- 입력받은 사용자 세 자리 정수 유효성 검사하는 함수 추가
- 메뉴 실행 함수 추가
- 정상적인 게임 결과 출력
- 타입 선언을 명시적으로 하는 것이 좋은지, 혹은 암시적으로 하는것이 좋은지 고민.
- 두 명이 의논하여 타입 선언을 명시적으로 하기로 정했습니다.
- "입력이 잘못되었습니다."를 출력할 때, 메뉴가 선택 되어 잘못 입력 했을 때 출력을 해야 할 지(경우1) 오류를 처리하는 부분에서 출력을 해야 할 지(경우2) 고민
- 하지만 같이 고민 한 결과 오류 구문이기 때문에 오류를 처리 하는 부분에서 출력하기로 결정 했습니다. 정상적인 실행을 넘어 더 적절한 위치를 찾기위해 많은 노력을 했던 것 같습니다.
// 경우 1
func receiveMenuNumber() -> Int? {
print("1. 게임시작\n2. 게임종료\n원하는 기능을 선택해주세요 : ", terminator: "")
if let selectedMenu = Int(readLine() ?? "") {
return selectedMenu
} else {
print("입력이 잘못되었습니다.")
return nil
}
}
// 경우 2
func choiceMenu() {
while true {
guard let menuNumber = receiveMenuNumber(), isCorrectMenuNumber(menuNumber) else {
print("입력이 잘못되었습니다.")
continue
}
}
}