์์ธํ
์ฃผ์ด์ง ํ์ ๋์ n๋์ ์๋์ฐจ๋ ์ ์ง ๋๋ ๋ฉ์ถ ์ ์๋ค.
๊ฐ ์๋์ฐจ์ ์ด๋ฆ์ ๋ถ์ฌํ ์ ์๋ค. ์ ์งํ๋ ์๋์ฐจ๋ฅผ ์ถ๋ ฅํ ๋ ์๋์ฐจ ์ด๋ฆ์ ๊ฐ์ด ์ถ๋ ฅํ๋ค.
์๋์ฐจ ์ด๋ฆ์ ์ผํ(,)๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ตฌ๋ถํ๋ฉฐ ์ด๋ฆ์ 5์ ์ดํ๋ง ๊ฐ๋ฅํ๋ค.
์ฌ์ฉ์๋ ๋ช ๋ฒ์ ์ด๋์ ํ ๊ฒ์ธ์ง๋ฅผ ์ ๋ ฅํ ์ ์์ด์ผ ํ๋ค.
์ ์งํ๋ ์กฐ๊ฑด์ 0์์ 9 ์ฌ์ด์์ random ๊ฐ์ ๊ตฌํ ํ random ๊ฐ์ด 4 ์ด์์ผ ๊ฒฝ์ฐ ์ ์งํ๊ณ , 3 ์ดํ์ ๊ฐ์ด๋ฉด ๋ฉ์ถ๋ค.
์๋์ฐจ ๊ฒฝ์ฃผ ๊ฒ์์ ์๋ฃํ ํ ๋๊ฐ ์ฐ์นํ๋์ง๋ฅผ ์๋ ค์ค๋ค. ์ฐ์น์๋ ํ ๋ช ์ด์์ผ ์ ์๋ค.
๋ค์ Car ๊ฐ์ฒด๋ฅผ ํ์ฉํด ๊ตฌํํด์ผ ํ๋ค.
Car ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
name, position ๋ณ์์ ์ ๊ทผ ์ ์ด์์ธ private๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค.
๊ฐ๋ฅํ๋ฉด setPosition(int position) ๋ฉ์๋๋ฅผ ์ถ๊ฐํ์ง ์๊ณ ๊ตฌํํ๋ค.
public class Car { private final String name; private int position = 0; public Car(String name) { this.name = name; } // ์ถ๊ฐ ๊ธฐ๋ฅ ๊ตฌํ }
3ํญ ์ฐ์ฐ์๋ฅผ ์ฐ์ง ์๋๋ค.
indent(์ธ๋ดํธ, ๋ค์ฌ์ฐ๊ธฐ) depth๋ฅผ 3์ด ๋์ง ์๋๋ก ๊ตฌํํ๋ค. 2๊น์ง๋ง ํ์ฉ๋๋ค.
- ํํธ : indent depth๋ฅผ ์ค์ด๋ ์ข์ ๋ฐฉ๋ฒ์ ํจ์(๋๋ ๋ฉ์๋)๋ฅผ ๋ถ๋ฆฌํ๋ฉด ๋๋ค.
์๋ฐ ์ฝ๋ ์ปจ๋ฒค์ ์ ์งํค๋ฉด์ ํ๋ก๊ทธ๋๋ฐํ๋ค.
ํจ์(๋๋ ๋ฉ์๋)์ ๊ธธ์ด๊ฐ 15๋ผ์ธ์ ๋์ง ์๋๋ก ๊ตฌํํ๋ค.
- ํจ์(๋๋ ๋ฉ์๋)๊ฐ ํ ๊ฐ์ง ์ผ๋ง ์ ํ๋๋ก ๊ตฌํํ๋ค.
else ์์ฝ์ด๋ฅผ ์ฐ์ง ์๋๋ค.
ํํธ : if ์กฐ๊ฑด์ ์์ ๊ฐ์ returnํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ๋ฉด else๋ฅผ ์ฌ์ฉํ์ง ์์๋ ๋๋ค.
else๋ฅผ ์ฐ์ง ๋ง๋ผ๊ณ ํ๋ switch/case๋ก ๊ตฌํํ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ, switch/case๋ ํ์ฉํ์ง ์๋๋ค.
-
(๊ธฐ๋ฅ 3) ์ฌ์ฉ์๋ก๋ถํฐ ์ผํ(,)๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ตฌ๋ถ ์ง์ด์ง ์๋์ฐจ์ ์ด๋ฆ๋ค์ ์ ๋ ฅ๋ฐ๋ ๊ธฐ๋ฅ.
-
(๊ตฌํ) ์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ ฅ์ ํ ์ค ๋จ์(Enter ์ ๋ ฅ ์ ๊น์ง)๋ก ๋ฐ๊ณ , ์ ๋ ฅ์์ ์ผํ(,)์ ์, ๋ค์ ์กด์ฌํ๋ ๊ณต๋ฐฑ์ ์ ๊ฑฐํ๋ ๊ธฐ๋ฅ.- (์์ ) ์ผํ(,)๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด์ ๋จผ์ ์๋ฅธ ํ ๊ตฌ๋ถ๋ ๋ฌธ์์ด์ ์, ๋ค์ ์กด์ฌํ๋ ๊ณต๋ฐฑ์ ์์ ๋ ํ์์ผ๋ก ๋ณ๊ฒฝ.
-
(์์ธ) ์ผํ(,)๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด์ splitํ๊ณ , ๊ตฌ๋ถ๋ ๋ฌธ์์ด ๊ฐ๊ฐ์ ๊ธธ์ด๊ฐ 1๋ณด๋ค ์๊ฑฐ๋ 5๋ณด๋ค ํฐ์ง ํ์ธ.
-
(์์ธ) ๊ตฌ๋ถ๋ ๋ฌธ์์ด์ ๊ฐ ์๋ฆฌ๊ฐ ์ซ์ ๋๋ ๋ฌธ์์ธ์ง ํ์ธ.
-
(์์ธ) ๋์ผํ ์๋์ฐจ์ ์ด๋ฆ์ด ์ค๋ณต๋์ด ์ ๋ ฅ๋ ๊ฒฝ์ฐ๊ฐ ์๋์ง ํ์ธ.
-
(๊ตฌํ) ์๋์ฐจ์ ์ด๋ฆ๋ค์ด ๋ชจ๋ ์ ํจ์ฑ์ ํต๊ณผํ ๊ฒฝ์ฐ, ์๋์ฐจ ์ด๋ฆ๋ค์ List์ ์ ์ฅํ๋ ๊ธฐ๋ฅ.
-
-
(๊ธฐ๋ฅ 1) ์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ ฅ๋ฐ์ ์๋์ฐจ ์ด๋ฆ๋ค๋ก ์๋์ฐจ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ธฐ๋ฅ.
-
(๊ธฐ๋ฅ 4) ์ฌ์ฉ์๋ก๋ถํฐ ์๋์ฐจ์ ์๋ ํ์๋ฅผ ์ ๋ ฅ๋ฐ๋ ๊ธฐ๋ฅ.
- (์์ธ) ์ ๋ ฅ๋ ์ซ์๊ฐ 0๋ณด๋ค ํฐ ์ ์์ธ์ง ํ์ธ.
-
(๊ธฐ๋ฅ 5) ๊ฐ๊ฐ์ ์๋์ฐจ๋ค์ด 0์์ 9 ์ฌ์ด์ random ํ ์ซ์๋ฅผ ์์ฑํ๋ ๊ธฐ๋ฅ.
-
(๊ธฐ๋ฅ 5) ์๋์ฐจ์ random ํ ์๊ฐ 3 ์ดํ์ธ์ง, 4 ์ด์์ธ์ง ํ์ธํ์ฌ ์ ์ง ์ฌ๋ถ๋ฅผ ํ๋จํ๋ ๊ธฐ๋ฅ.
-
(๊ธฐ๋ฅ 5) ์๋์ฐจ๊ฐ ์ ์งํด์ผ ํ ๊ฒฝ์ฐ, ํด๋น ์๋์ฐจ์ position์ ์ด๋์ํค๋ ๊ธฐ๋ฅ.
- (๊ตฌํ) ๋ชจ๋ ์๋์ฐจ๋ค์ position ์ค ์ต๋๊ฐ์ ์ ์ฅํ๋ ๋ณ์์ ๊ฐ๋ณด๋ค ํด๋น ์๋์ฐจ์ ์ด๋ํ ํ position์ด ํด ๊ฒฝ์ฐ, ํด๋น ๋ณ์์ ๊ฐ์ ์ด๊ธฐํํ๋ ๊ธฐ๋ฅ.
-
(๊ธฐ๋ฅ 2) ๋ชจ๋ ์๋์ฐจ๋ค์ ์ด๋์ด ๋๋ ํ์ ์์น๋ฅผ ์ด๋ฆ๊ณผ ํจ๊ป ์ถ๋ ฅํ๋ ๊ธฐ๋ฅ.
-
(๊ธฐ๋ฅ 1) ์ 3 ~ 6๊น์ง์ ๊ธฐ๋ฅ๋ค์ ์ ๋ ฅ๋ฐ์ ์๋ ํ์๋งํผ ๋ฐ๋ณตํ๋ ๊ธฐ๋ฅ.
-
(๊ธฐ๋ฅ 6) ๋ชจ๋ ์ด๋์ด ๋๋๊ณ , position๋ค ์ค ์ต๋๊ฐ์ด ์ ์ฅ๋์ด ์๋ ๋ณ์์ ๊ฐ๊ณผ ๋น๊ตํ์ฌ ๋์ผํ position์ ๊ฐ์ง๋ ์๋์ฐจ๋ค์ ์ ํํ๋ ๊ธฐ๋ฅ.
-
(๊ธฐ๋ฅ 6) ์ ํ๋ ๋ชจ๋ ์๋์ฐจ๋ค์ ์ด๋ฆ์ ์ผํ(,)๋ก ๊ตฌ๋ถํ์ฌ ์ถ๋ ฅํ๋ ๊ธฐ๋ฅ(์ค๋ณต ํ์ฉ).
- (์์ธ) ๋ชจ๋ ์๋์ฐจ๋ค์ด ์ถ๋ฐ์ ์ ์์นํ ๊ฒฝ์ฐ, ์ฐ์น์๊ฐ ์กด์ฌํ์ง ์๋๋ค๋ ์ถ๋ ฅ์ ํ๋ ๊ธฐ๋ฅ.
์์ธํ
-
์ด๋ค ํ๋ก์ ํธ์ธ์ง์ ๊ตฌํํด์ผ ํ ๊ธฐ๋ฅ์ ๋๋ต์ ์ผ๋ก ์์ฑ.
- ๊ณผ์ ์ ์งํ์ ํ์ํ ๋ด์ฉ๋ค์ README.md์์ ๋ชจ๋ ๋ณผ ์ ์๋๋ก ์์ฑ.
-
๊ตฌํํด์ผ ํ ๊ธฐ๋ฅ ๋ชฉ๋ก์ ๋ํ ์ธ๋ถ์ ์ธ ๊ธฐ๋ฅ ์ฌ๋ถ๋ฅ ๋ฐ ์์ธ ์ฒ๋ฆฌ ์์ฑ.
-
๊ตฌํ ๋ฐฉ๋ฒ๊ณผ ์์ธ ์ฒ๋ฆฌ์ ๋ํ ๊ฐ๋ตํ ์ค๋ช ๋ฐ ๊ณํ ์ถ๊ฐ.
-
ํด๋์ค์ ๋ถ๋ฆฌ์ ์ด์ ์ ๋ฌ์ ์ด๋ค ๊ธฐ๋ฅ๋ค์ ์ด๋ค ํด๋์ค๋ก ๋ถ๋ฅํด์ผ ํ ์ง ๊ณ ๋ฏผ ํ ๊ฐ๋ตํ๊ฒ ์์ฑ.
-
-
๊ตฌํํด์ผ ํ ๊ธฐ๋ฅ ๋ชฉ๋ก ์์๋๋ก Class ์์ฑ ๋ฐ ์ฝ๋ ์์ฑ (๊ธฐ๋ฅ์ ํจ์ํ).
-
๊ตฌํํด์ผ ํ ๊ธฐ๋ฅ์ ๋ฐ๋ฅธ Class ์ค์ .
-
์ต๋ํ Code Conventions๋ฅผ ์งํค๋ฉด์ ์์ฑ(๋ช ๋ช ์๋ ์ ๊ฒฝ์ฐ๊ธฐ).
-
-
1์ฐจ ์ ์ฒด์ ์ธ ๋ฆฌํํ ๋ง ์งํ (ํ๋ก๊ทธ๋๋ฐ ์๊ตฌ ์ฌํญ์ ์ค์ ์ ์ผ๋ก ์งํ).
-
์ ์ฒด ์ฝ๋๋ฅผ ๊ฒํ , ์ฌํ์ธํ๋ฉด์ ๊ธฐ๋ฅ์ ์ข ๋ ์ธ๋ถํ์์ผ ํจ์ํํ๋ ๋ฆฌํํ ๋ง ์งํ.
-
Car ๊ฐ์ฒด์ ํ์ฉ ํ์ธ (setPosition ๋ฉ์๋ ์ฌ์ฉํ์ง ์์๋์ง ํ์ธ).
-
์์๊ฐ ์ฌ์ฉ๋์ง ์์ ๋ถ๋ถ์ ์์ .
-
์ค๋ณต์ ์ธ ์ฝ๋๊ฐ ์กด์ฌํ๋์ง ์ฌ๋ถ๋ฅผ ํ์ธ ํ ์์ .
-
if-else๋ฌธ์ด ์กด์ฌํ๋์ง, indent depth๊ฐ 3์ ๋์ง ์๋์ง ์ฌ๋ถ ํ์ธ.
-
-
ํ๋ก๊ทธ๋๋ฐ ์๊ตฌ ์ฌํญ ์ค Convention์ ์ค์ ์ ์ผ๋ก ํ์ธ.
-
code convention 1์ฐจ ์ฒดํฌ (ํ์ผ ๊ตฌ์กฐ, ๋ค์ฌ์ฐ๊ธฐ, ์ฃผ์, ์ ์ธ, ๋ฌธ, ๋น ๊ณต๊ฐ ํ์ธ).
-
code convention 2์ฐจ ์ฒดํฌ (๋ช ๋ช ๊ท์น, ์ข์ ํ๋ก๊ทธ๋๋ฐ ์ต๊ด).
-
ํด๋์ค, ๋ฉ์๋, ๋ณ์์ ์ด๋ฆ์์ ์ต๋ํ ์ญํ ์ด ๋๋ฌ๋๋๋ก ๋ช ๋ช ์์ .
-
์ถ๋ ฅ๋ฌธ์ ์ฌ์ฉ๋๋ ๋ฌธ์์ด์ ๋ชจ๋ ์์๋ก ์์ .
-
-
code convention 3์ฐจ ์ฒดํฌ (Naver campus hackday code format ์ ์ฉ).
-
code convention 4์ฐจ ์ฒดํฌ (1์ฃผ์ฐจ ํ๋ฆฌ์ฝ์ค ํผ๋๋ฐฑ ์์ฃผ ํ์ธ).
-
-
์ถ๊ฐ์ ์ธ ๋ฆฌํํ ๋ง ๊ณ์ ์งํ.
-
ํด๋์ค ๋ถ๋ฆฌ๋ฅผ ์๋.
-
์ฌ์ฉ์๊ฐ ์ ๋ ฅํ๋ ๊ธฐ๋ฅ์ ์ํํ๋ User ํด๋์ค ์ถ๊ฐ(๋ถ๋ฆฌ).
-
User ํด๋์ค ์ถ๊ฐ์ ๋ฐ๋ฅธ RacingGame ํด๋์ค์ ๋ฉ์๋ ์ผ๋ถ ์์ (๋ถํ์ํ ์ธ์คํด์ค ๋ณ์ ์ ๊ฑฐ).
-
-
์์ธํ
์ฐ์ํ ํ์ ๋ค ๊ธฐ์ ๋ธ๋ก๊ทธ์ ์๊ฐํ๋ผ, ๊ฐ์ฒด์งํฅ์ฒ๋ผ ์ฐธ๊ณ
-
๊ฐ์ฒด ์งํฅ ์ค๊ณ ์ด๋ฏธ์ง
-
ํด๋์ค ๋ถ๋ฅ ์งํ
-
Input ํ์
-
Output ํ์
-
GameManager ํ์
-
Preprocessor ํ์- StringUtil ํ์ ์ผ๋ก ๋ช ๋ช ์์ -
Validator ํ์
-
Car ํ์
-
RacingGame ํ์
-
-
์ ์ฒด ์ฝ๋ ๋ฆฌํํ ๋ง ์๋ฃ
-
precourse week 1 ์ซ์ ์ผ๊ตฌ ๊ฒ์์ ํด๋์ค ๋ถ๋ฆฌ ๋ฆฌํํ ๋ง ํ ๋๋ณด๋ค ๋ ๊น๋ํ๊ฒ ์งํ ์๋ฃ.
-
๋น์ฆ๋์ค ๋ก์ง๊ณผ UI ๋ก์ง์ ๋ถ๋ฆฌ ์ฐ์ต.
-
getter ์ฌ์ฉ์ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ ํ์์ผ๋ก ์์ ์ฐ์ต.
-
๋ฌธ์์ด์ ๋ค๋ฃจ๋ ํด๋์ค๋ฅผ ๋ฐ๋ก ๋ฝ๋ ์ฐ์ต.
-
-
์์ํ์ ๊ณผ ๋ฌธ์์ด ํฌ์ฅ ์ฐ์ต
- Enum ๋๋ ํด๋์ค๋ก ํฌ์ฅ.
-
์ผ๊ธ ์ปฌ๋ ์ ์ฌ์ฉ
- ์ปฌ๋ ์ ๋จ ํ๋๋ง ์ธ์คํด์ค ๋ณ์๋ก ๊ฐ์ง๋ ํด๋์ค.
-
์๋์ฐจ์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ์ง๋ ๊ฐ์ฒด์ธ Car.
-
์๋์ฐจ์ ์์น๋ฅผ ๊ฐ์ธ๋ ๊ฐ์ฒด์ธ Position.
-
Car๋ฅผ List๋ก ๊ฐ์ง ์ผ๊ธ ์ปฌ๋ ์ ๊ฐ์ฒด์ธ Cars.
-
Race ์ค๊ฐ ๊ณผ์ ์ ์ ์ฅํด๋ RaceStatus.
-
Race ์ต์ข ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ RaceResult.
-
Random ํ ์๋ฅผ ๋ง๋ค์ด ์ ์งํ ์ ์๋์ง ์๋ ค์ฃผ๋ RandomNumberStrategy.
-
Cars๋ฅผ ๋ง๋ค์ด๋ด๋ CarFactory.
-
์๋ ํ์๋ฅผ ์ ๋ ฅ๋ฐ์ ๊ฐ์ธ๋ AttemptNumber.
-
๊ฒ์์ ์ ์ฒด ๊ด๋ฆฌํ๋ GameManager.
-
๊ฒ์์ ์งํํ๋ RacingGame.
-
์๋ฒฝํ UI, Business ๋ก์ง ๋ถ๋ฆฌ
-
์ถ๋ ฅ์ ํด์ผํ ์ํฉ๋ค์ ๋ฐ๋ก List๋ก ๋ง๋ค์ด ์ ์ฅํ๊ณ ํ์ ํ๋ฒ์ ์ถ๋ ฅ.
-
Main๋ฌธ๊ณผ ๊ฐ์ ์ํฉ์์ Business ๋ก์ง์ ๊ฒฐ๊ณผ๋ฅผ ๋ค ๋ฐ์์จ ํ UI ๋ก์ง์ผ๋ก ์ ๋ฌ.
-
-
์ผ๊ธ ์ปฌ๋ ์ ๊ณผ ์์ํ์ ๊ฐ์ธ๊ธฐ
-
์ง์ 1์ฃผ์ฐจ ๊ณผ์ ์ ์ฐ์ตํ ๋๋ณด๋ค ํจ์ฌ ๋ ํธํด์ง.
-
๋จ์ง UI ๋ถ๋ฆฌ๊ฐ ๋ฑ์ฅํด์ ์ข ๋ ์ด์ํด์ง ๋๋.
-
-
์ต์ข 3์ฃผ์ฐจ์ ์ข ๋ ์์ธํ ์ค๋นํด๋ณด๊ธฐ.