diff --git a/README.md b/README.md index e078fd41f..bbcaab170 100644 --- a/README.md +++ b/README.md @@ -1 +1,12 @@ -# javascript-racingcar-precourse +# 2주차 - 자동차 경주 +## 구현할 기능 목록 + +- [x] 시작 메세지 출력 +- [x] 자동차 이름 입력 받고 처리 +- [x] 이동 입력 받기 +- [ ] 주어진 조건에 맞추어 전진하기 +- [ ] 우승자 출력하기(한 명, 여러 명) +- [ ] error 처리 + - [x] 사용자 이름이 5자 이상인 경우 + - [x] 시도할 횟수로 양수가 들어오지 않은 경우 + - [x] 입력이 올바른 형태가 아닌 경우 \ No newline at end of file diff --git a/src/App.js b/src/App.js index 091aa0a5d..b6a0ba3aa 100644 --- a/src/App.js +++ b/src/App.js @@ -1,5 +1,38 @@ +import { MissionUtils } from "@woowacourse/mission-utils"; +import splitInput from "./splitInput.js"; +import validNumber from "./validNumber.js"; + class App { - async run() {} + async run() { + // 1. 자동차 이름 입력 처리 + const INPUT = await MissionUtils.Console.readLineAsync( + "경주할 자동차 이름을 입력하세요.(이름은 쉼표(,) 기준으로 구분)\n" + ); + const CARNAMES = splitInput(INPUT); + + // 2. 이동 거리 처리 + const NUMINPUT = await MissionUtils.Console.readLineAsync( + "시도할 횟수는 몇 회인가요?\n" + ); + const TIMES = validNumber(NUMINPUT); + + MissionUtils.Console.print("\n실행 결과"); + + // 3. 경기 진행 + var player1 = 0; + var player2 = 0; + var player3 = 0; + var i=0; + while (i3 && p2>3 && p3>3) { + return true; + } + return false; +} \ No newline at end of file diff --git a/src/splitInput.js b/src/splitInput.js new file mode 100644 index 000000000..537358108 --- /dev/null +++ b/src/splitInput.js @@ -0,0 +1,18 @@ +import { MissionUtils } from "@woowacourse/mission-utils"; +import validInput from "./validInput.js" + +function splitInput(targetInput) { + const CARNAMES = targetInput.split(","); + try { + const CARNAMES = targetInput.split(","); + if (validInput(CARNAMES)) { + return CARNAMES; + } else { + throw new Error("[ERROR] 올바른 입력 형식 "); + } + } catch { + MissionUtils.Console.print("[ERROR] 올바른 입력 형식이 아닙니다."); + } +} + +export default splitInput; diff --git a/src/validInput.js b/src/validInput.js new file mode 100644 index 000000000..d9abf3c52 --- /dev/null +++ b/src/validInput.js @@ -0,0 +1,12 @@ +import { MissionUtils } from "@woowacourse/mission-utils"; +function validInput (cars) { + for(let i=0;i5) { + // MissionUtils.Console.print(cars[i]); + return false + } + } + return true +}; + +export default validInput; \ No newline at end of file diff --git a/src/validNumber.js b/src/validNumber.js new file mode 100644 index 000000000..ed9250274 --- /dev/null +++ b/src/validNumber.js @@ -0,0 +1,14 @@ +import { MissionUtils } from "@woowacourse/mission-utils"; + +function validNumber(num) { + const parsedNum = parseInt(num); + + if (isNaN(parsedNum) || parsedNum <= 0) { + MissionUtils.Console.print("[ERROR] 양수를 입력해주세요."); + } + + return parsedNum; +} + +export default validNumber; +