Pull Request만 보내고 지원 플랫폼에서 과제를 제출하지 않으면 최종 제출하지 않은 것으로 처리되니 주의한다.
🚨 과제 제출 전 체크 리스트 - 0점 방지
기능 구현을 모두 정상적으로 했더라도 요구 사항에 명시된 출력값 형식을 지키지 않을 경우 0점으로 처리한다.
기능 구현을 완료한 뒤 아래 가이드에 따라 테스트를 실행했을 때 모든 테스트가 성공하는지 확인한다.
테스트가 실패할 경우 0점으로 처리되므로, 반드시 확인 후 제출한다.
테스트 실행 가이드
터미널에서 Mac 또는 Linux 사용자의 경우 ./gradlew clean test 명령을 실행하고,
Windows 사용자의 경우 gradlew.bat clean test 명령을 실행할 때 모든 테스트가 아래와 같이 통과하는지 확인한다.
BUILD SUCCESSFUL in 0s
🚀 기능 요구 사항
위아래 두 칸으로 이루어진 다리를 건너야 한다.
다리는 왼쪽에서 오른쪽으로 건너야 한다.
위아래 둘 중 하나의 칸만 건널 수 있다.
다리의 길이를 숫자로 입력 받고 생성한다.
다리를 생성할 때 위 칸과 아래 칸 중 건널 수 있는 칸은 Random 값을 이용해서 정한다.
위 칸을 건널 수 있는 경우 U, 아래 칸을 건널 수 있는 경우 D 값으로 나타낸다.
Random 값이 0인 경우 아래 칸, 1인 경우 위 칸이 건널 수 있는 칸이 된다.
다리가 생성되면 플레이어가 이동할 칸을 선택한다.
이동할 때 위 칸은 대문자 U, 아래 칸은 대문자 D를 입력한다.
이동한 칸을 건널 수 있다면 O로 표시한다. 건널 수 없다면 X로 표시한다.
다리를 끝까지 건너면 게임이 종료된다.
다리를 건너다 실패하면 게임을 재시작하거나 종료할 수 있다.
재시작해도 처음에 만든 다리로 재사용한다.
사용자가 잘못된 값을 입력할 경우 IllegalArgumentException를 발생시키고, "[ERROR]"로 시작하는 에러 메시지를 출력 후 그 부분부터 입력을 다시 받는다.
Exception이 아닌 IllegalArgumentException, IllegalStateException 등과 같은 명확한 유형을 처리한다.
입출력 요구 사항
입력
자동으로 생성할 다리 길이를 입력 받는다. 3 이상 20 이하의 숫자를 입력할 수 있으며 올바른 값이 아니면 예외 처리한다.
3
매 라운드마다 플레이어가 이동할 칸을 입력 받는다. U(위 칸)와 D(아래 칸) 중 하나의 문자를 입력할 수 있으며 올바른 값이 아니면 예외 처리한다.
U
게임 재시작/종료 여부를 입력 받는다. R(재시작)과 Q(종료) 중 하나의 문자를 입력할 수 있으며 올바른 값이 아니면 예외 처리한다.
R
출력
게임 시작 문구
다리 건너기 게임을 시작합니다.
게임 종료 문구
최종 게임 결과
[ O | | ]
[ | O | O ]
게임 성공 여부: 성공
총 시도한 횟수: 2
사용자가 이동할 때마다 다리 건너기 결과의 출력 형식은 실행 결과 예시를 참고한다.
이동할 수 있는 칸을 선택한 경우 O 표시
이동할 수 없는 칸을 선택한 경우 X 표시
선택하지 않은 칸은 공백 한칸으로 표시
다리의 시작은 [, 다리의 끝은 ]으로 표시
다리 칸의 구분은 |(앞뒤 공백 포함) 문자열로 구분
현재까지 건넌 다리를 모두 출력
예외 상황 시 에러 문구를 출력해야 한다. 단, 에러 문구는 "[ERROR]"로 시작해야 한다.
[ERROR] 다리 길이는 3부터 20 사이의 숫자여야 한다.
실행 결과 예시
다리 건너기 게임을 시작합니다.
다리의 길이를 입력해주세요.
3
이동할 칸을 선택해주세요. (위: U, 아래: D)
U
[ O ]
[ ]
이동할 칸을 선택해주세요. (위: U, 아래: D)
D
[ O | ]
[ | X ]
게임을 다시 시도할지 여부를 입력해주세요. (재시도: R, 종료: Q)
R
이동할 칸을 선택해주세요. (위: U, 아래: D)
U
[ O ]
[ ]
이동할 칸을 선택해주세요. (위: U, 아래: D)
D
[ O | ]
[ | O ]
이동할 칸을 선택해주세요. (위: U, 아래: D)
D
[ O | | ]
[ | O | O ]
최종 게임 결과
[ O | | ]
[ | O | O ]
게임 성공 여부: 성공
총 시도한 횟수: 2
다리 건너기 게임을 시작합니다.
다리의 길이를 입력해주세요.
3
이동할 칸을 선택해주세요. (위: U, 아래: D)
U
[ O ]
[ ]
이동할 칸을 선택해주세요. (위: U, 아래: D)
D
[ O | ]
[ | X ]
게임을 다시 시도할지 여부를 입력해주세요. (재시도: R, 종료: Q)
Q
최종 게임 결과
[ O | ]
[ | X ]
게임 성공 여부: 실패
총 시도한 횟수: 1
🎯 프로그래밍 요구 사항
Kotlin 1.6.20에서 실행 가능해야 한다. Kotlin 1.6.20에서 정상적으로 동작하지 않을 경우 0점 처리한다.