모든 코드는 여기를 클릭 하시면 확인 하실 수 있습니다.
안녕하세요 첫 블로그 포스팅으로는 TDD로 간단한 커멘드라인 프로그램을 개발하는 과정을 포스팅 해볼까 합니다. 처음으로 개발 할 프로그램은 자동차 경주 게임인데요, 기능 요구사항 및 프로그래밍 요구사항을 아래에 적어보고 어떤 식으로 구현 할 지에 대해 설계하는 부분까지를 이번 포스팅의 내용으로 하겠습니다.
자동차 경주 게임은 Command Line Program으로 사용자에게 함께 플레이 할 사용자의 이름과 플레이 횟수를 입력하면 각 횟수 마다 난수에 의해 60%의 확률로 전진과 스탑이 결정됩니다. 매 라운드의 결과를 출력하고 최종적으로 우승자의 명단을 출력하며 프로그램은 종료됩니다.
Test Driven Development (TDD) 를 기반으로 Production Code를 작성하기 전에 Test 코드를 먼저 작성하고 테스트가 통과하는 가장 쉬운 방법으로 프로덕션 코드를 완성한 후 리팩토링 하는 방식으로 개발 할 예정입니다.
# 자동차 경주 게임
- 사용자에게 플레이 할 자동차의 이름을 입력받고, 플레이 할 횟수를 입력받는다. 매 라운드(횟수) 마다 각 사용자는 무작위로 생성된 난수에 의해 GO / STOP 이 결정된다.
- 매 라운드 별로 결과를 출력하고, 모든 라운드가 종료되는 경우 우승자를 출력한다.
## TO-DO LIST
- 함께 플레이 할 사용자를 입력받는다.
- 1~5 글자
- 공백 및 NULL Exception
- Comma(,) 를 기준으로 구분
- 중복된 이름 입력 Exception
- 플레이 할 횟수를 입력받는다.
- 1 ~ 30 회
- 1 보다 작은 수 Exception
- 문자열 Exception
- 전진 하는 조건은 0~9 사이의 Random 값을 구한 후 4이상이면 전진, 3이하 멈춘다.
- 전진 하는 조건은 달라질 수 있다고 가정한다.
- 차의 종류나 탈 것의 변경
- 다른 조건에 의한 이동
- 위의 조건에 의해 전진시 이동 거리가 달라 질 수 있다.
- 매 라운드 별로 각 사용자의 이름과 Position을 출력하고
- 매 라운드 결과 값을 저장하고 있는다.
- 모든 라운드가 종료되면 최종 우승자의 이름을 출력한다.
- 라운드 결과 중 마지막 라운드의 결과를 출력한다.