Skip to content

lxxjn0/java-racingcar-precourse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

35 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Precourse Week 2 - ์ž๋™์ฐจ ๊ฒฝ์ฃผ ๊ฒŒ์ž„

๋ฏธ์…˜ ์š”๊ตฌ์‚ฌํ•ญ

์ž์„ธํžˆ

๊ธฐ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ

  1. ์ฃผ์–ด์ง„ ํšŸ์ˆ˜ ๋™์•ˆ n๋Œ€์˜ ์ž๋™์ฐจ๋Š” ์ „์ง„ ๋˜๋Š” ๋ฉˆ์ถœ ์ˆ˜ ์žˆ๋‹ค.

  2. ๊ฐ ์ž๋™์ฐจ์— ์ด๋ฆ„์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ „์ง„ํ•˜๋Š” ์ž๋™์ฐจ๋ฅผ ์ถœ๋ ฅํ•  ๋•Œ ์ž๋™์ฐจ ์ด๋ฆ„์„ ๊ฐ™์ด ์ถœ๋ ฅํ•œ๋‹ค.

  3. ์ž๋™์ฐจ ์ด๋ฆ„์€ ์‰ผํ‘œ(,)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๋ฉฐ ์ด๋ฆ„์€ 5์ž ์ดํ•˜๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

  4. ์‚ฌ์šฉ์ž๋Š” ๋ช‡ ๋ฒˆ์˜ ์ด๋™์„ ํ•  ๊ฒƒ์ธ์ง€๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

  5. ์ „์ง„ํ•˜๋Š” ์กฐ๊ฑด์€ 0์—์„œ 9 ์‚ฌ์ด์—์„œ random ๊ฐ’์„ ๊ตฌํ•œ ํ›„ random ๊ฐ’์ด 4 ์ด์ƒ์ผ ๊ฒฝ์šฐ ์ „์ง„ํ•˜๊ณ , 3 ์ดํ•˜์˜ ๊ฐ’์ด๋ฉด ๋ฉˆ์ถ˜๋‹ค.

  6. ์ž๋™์ฐจ ๊ฒฝ์ฃผ ๊ฒŒ์ž„์„ ์™„๋ฃŒํ•œ ํ›„ ๋ˆ„๊ฐ€ ์šฐ์Šนํ–ˆ๋Š”์ง€๋ฅผ ์•Œ๋ ค์ค€๋‹ค. ์šฐ์Šน์ž๋Š” ํ•œ ๋ช… ์ด์ƒ์ผ ์ˆ˜ ์žˆ๋‹ค.

ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ฒฐ๊ณผ

ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ฒฐ๊ณผ!

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ์‚ฌํ•ญ

๊ฐ์ฒด

  1. ๋‹ค์Œ Car ๊ฐ์ฒด๋ฅผ ํ™œ์šฉํ•ด ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค.

  2. Car ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์—†๋‹ค.

  3. name, position ๋ณ€์ˆ˜์˜ ์ ‘๊ทผ ์ œ์–ด์ž์ธ private๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.

  4. ๊ฐ€๋Šฅํ•˜๋ฉด setPosition(int position) ๋ฉ”์†Œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ  ๊ตฌํ˜„ํ•œ๋‹ค.

public class Car {
    private final String name;
    private int position = 0;

    public Car(String name) {
        this.name = name;
    }

    // ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ตฌํ˜„
}

1์ฃผ์ฐจ์™€ ๋™์ผ

  1. 3ํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค.

  2. indent(์ธ๋ดํŠธ, ๋“ค์—ฌ์“ฐ๊ธฐ) depth๋ฅผ 3์ด ๋„˜์ง€ ์•Š๋“œ๋ก ๊ตฌํ˜„ํ•œ๋‹ค. 2๊นŒ์ง€๋งŒ ํ—ˆ์šฉ๋œ๋‹ค.

    • ํžŒํŠธ : indent depth๋ฅผ ์ค„์ด๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์€ ํ•จ์ˆ˜(๋˜๋Š” ๋ฉ”์†Œ๋“œ)๋ฅผ ๋ถ„๋ฆฌํ•˜๋ฉด ๋œ๋‹ค.

2์ฃผ์ฐจ ๋ณ€๊ฒฝ ๋ฐ ์ถ”๊ฐ€

  1. ์ž๋ฐ” ์ฝ”๋“œ ์ปจ๋ฒค์…˜์„ ์ง€ํ‚ค๋ฉด์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•œ๋‹ค.

  2. ํ•จ์ˆ˜(๋˜๋Š” ๋ฉ”์†Œ๋“œ)์˜ ๊ธธ์ด๊ฐ€ 15๋ผ์ธ์„ ๋„˜์ง€ ์•Š๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค.

    • ํ•จ์ˆ˜(๋˜๋Š” ๋ฉ”์†Œ๋“œ)๊ฐ€ ํ•œ ๊ฐ€์ง€ ์ผ๋งŒ ์ž˜ ํ•˜๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค.
  3. else ์˜ˆ์•ฝ์–ด๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค.

    • ํžŒํŠธ : if ์กฐ๊ฑด์ ˆ์—์„œ ๊ฐ’์„ returnํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜๋ฉด else๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

    • else๋ฅผ ์“ฐ์ง€ ๋ง๋ผ๊ณ  ํ•˜๋‹ˆ switch/case๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ, switch/case๋„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.


๊ตฌํ˜„ํ•ด์•ผ ํ•  ๊ธฐ๋Šฅ ๋ชฉ๋ก

  1. (๊ธฐ๋Šฅ 3) ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์‰ผํ‘œ(,)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„ ์ง€์–ด์ง„ ์ž๋™์ฐจ์˜ ์ด๋ฆ„๋“ค์„ ์ž…๋ ฅ๋ฐ›๋Š” ๊ธฐ๋Šฅ.

    • (๊ตฌํ˜„) ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ์„ ํ•œ ์ค„ ๋‹จ์œ„(Enter ์ž…๋ ฅ ์ „๊นŒ์ง€)๋กœ ๋ฐ›๊ณ , ์ž…๋ ฅ์—์„œ ์‰ผํ‘œ(,)์˜ ์•ž, ๋’ค์— ์กด์žฌํ•˜๋Š” ๊ณต๋ฐฑ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ธฐ๋Šฅ.

      • (์ˆ˜์ •) ์‰ผํ‘œ(,)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋จผ์ € ์ž๋ฅธ ํ›„ ๊ตฌ๋ถ„๋œ ๋ฌธ์ž์—ด์˜ ์•ž, ๋’ค์— ์กด์žฌํ•˜๋Š” ๊ณต๋ฐฑ์„ ์—†์• ๋Š” ํ˜•์‹์œผ๋กœ ๋ณ€๊ฒฝ.
    • (์˜ˆ์™ธ) ์‰ผํ‘œ(,)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ splitํ•˜๊ณ , ๊ตฌ๋ถ„๋œ ๋ฌธ์ž์—ด ๊ฐ๊ฐ์˜ ๊ธธ์ด๊ฐ€ 1๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ 5๋ณด๋‹ค ํฐ์ง€ ํ™•์ธ.

    • (์˜ˆ์™ธ) ๊ตฌ๋ถ„๋œ ๋ฌธ์ž์—ด์˜ ๊ฐ ์ž๋ฆฌ๊ฐ€ ์ˆซ์ž ๋˜๋Š” ๋ฌธ์ž์ธ์ง€ ํ™•์ธ.

    • (์˜ˆ์™ธ) ๋™์ผํ•œ ์ž๋™์ฐจ์˜ ์ด๋ฆ„์ด ์ค‘๋ณต๋˜์–ด ์ž…๋ ฅ๋œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ.

    • (๊ตฌํ˜„) ์ž๋™์ฐจ์˜ ์ด๋ฆ„๋“ค์ด ๋ชจ๋‘ ์œ ํšจ์„ฑ์„ ํ†ต๊ณผํ•  ๊ฒฝ์šฐ, ์ž๋™์ฐจ ์ด๋ฆ„๋“ค์„ List์— ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ.

  2. (๊ธฐ๋Šฅ 1) ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ๋ฐ›์€ ์ž๋™์ฐจ ์ด๋ฆ„๋“ค๋กœ ์ž๋™์ฐจ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ.

  3. (๊ธฐ๋Šฅ 4) ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž๋™์ฐจ์˜ ์‹œ๋„ ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ๊ธฐ๋Šฅ.

    • (์˜ˆ์™ธ) ์ž…๋ ฅ๋œ ์ˆซ์ž๊ฐ€ 0๋ณด๋‹ค ํฐ ์ •์ˆ˜์ธ์ง€ ํ™•์ธ.
  4. (๊ธฐ๋Šฅ 5) ๊ฐ๊ฐ์˜ ์ž๋™์ฐจ๋“ค์ด 0์—์„œ 9 ์‚ฌ์ด์˜ random ํ•œ ์ˆซ์ž๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ.

  5. (๊ธฐ๋Šฅ 5) ์ž๋™์ฐจ์˜ random ํ•œ ์ˆ˜๊ฐ€ 3 ์ดํ•˜์ธ์ง€, 4 ์ด์ƒ์ธ์ง€ ํ™•์ธํ•˜์—ฌ ์ „์ง„ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๋Š” ๊ธฐ๋Šฅ.

  6. (๊ธฐ๋Šฅ 5) ์ž๋™์ฐจ๊ฐ€ ์ „์ง„ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ, ํ•ด๋‹น ์ž๋™์ฐจ์˜ position์„ ์ด๋™์‹œํ‚ค๋Š” ๊ธฐ๋Šฅ.

    • (๊ตฌํ˜„) ๋ชจ๋“  ์ž๋™์ฐจ๋“ค์˜ position ์ค‘ ์ตœ๋Œ“๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜์˜ ๊ฐ’๋ณด๋‹ค ํ•ด๋‹น ์ž๋™์ฐจ์˜ ์ด๋™ํ•œ ํ›„ position์ด ํด ๊ฒฝ์šฐ, ํ•ด๋‹น ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ.
  7. (๊ธฐ๋Šฅ 2) ๋ชจ๋“  ์ž๋™์ฐจ๋“ค์˜ ์ด๋™์ด ๋๋‚œ ํ›„์˜ ์œ„์น˜๋ฅผ ์ด๋ฆ„๊ณผ ํ•จ๊ป˜ ์ถœ๋ ฅํ•˜๋Š” ๊ธฐ๋Šฅ.

  8. (๊ธฐ๋Šฅ 1) ์œ„ 3 ~ 6๊นŒ์ง€์˜ ๊ธฐ๋Šฅ๋“ค์„ ์ž…๋ ฅ๋ฐ›์€ ์‹œ๋„ ํšŸ์ˆ˜๋งŒํผ ๋ฐ˜๋ณตํ•˜๋Š” ๊ธฐ๋Šฅ.

  9. (๊ธฐ๋Šฅ 6) ๋ชจ๋“  ์ด๋™์ด ๋๋‚˜๊ณ , position๋“ค ์ค‘ ์ตœ๋Œ€๊ฐ’์ด ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ณ€์ˆ˜์˜ ๊ฐ’๊ณผ ๋น„๊ตํ•˜์—ฌ ๋™์ผํ•œ position์„ ๊ฐ€์ง€๋Š” ์ž๋™์ฐจ๋“ค์„ ์„ ํƒํ•˜๋Š” ๊ธฐ๋Šฅ.

  10. (๊ธฐ๋Šฅ 6) ์„ ํƒ๋œ ๋ชจ๋“  ์ž๋™์ฐจ๋“ค์˜ ์ด๋ฆ„์„ ์‰ผํ‘œ(,)๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ๊ธฐ๋Šฅ(์ค‘๋ณต ํ—ˆ์šฉ).

    • (์˜ˆ์™ธ) ๋ชจ๋“  ์ž๋™์ฐจ๋“ค์ด ์ถœ๋ฐœ์„ ์— ์œ„์น˜ํ•  ๊ฒฝ์šฐ, ์šฐ์Šน์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ถœ๋ ฅ์„ ํ•˜๋Š” ๊ธฐ๋Šฅ.

๊ฐœ๋ฐœ ์ง„ํ–‰ ๊ณ„ํš

์ž์„ธํžˆ
  1. ์–ด๋–ค ํ”„๋กœ์ ํŠธ์ธ์ง€์™€ ๊ตฌํ˜„ํ•ด์•ผ ํ•  ๊ธฐ๋Šฅ์„ ๋Œ€๋žต์ ์œผ๋กœ ์ž‘์„ฑ.

    • ๊ณผ์ œ์˜ ์ง„ํ–‰์— ํ•„์š”ํ•œ ๋‚ด์šฉ๋“ค์„ README.md์—์„œ ๋ชจ๋‘ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์ž‘์„ฑ.
  2. ๊ตฌํ˜„ํ•ด์•ผ ํ•  ๊ธฐ๋Šฅ ๋ชฉ๋ก์— ๋Œ€ํ•œ ์„ธ๋ถ€์ ์ธ ๊ธฐ๋Šฅ ์žฌ๋ถ„๋ฅ˜ ๋ฐ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์ž‘์„ฑ.

    • ๊ตฌํ˜„ ๋ฐฉ๋ฒ•๊ณผ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์„ค๋ช… ๋ฐ ๊ณ„ํš ์ถ”๊ฐ€.

    • ํด๋ž˜์Šค์˜ ๋ถ„๋ฆฌ์— ์ดˆ์ ์„ ๋‘ฌ์„œ ์–ด๋–ค ๊ธฐ๋Šฅ๋“ค์„ ์–ด๋–ค ํด๋ž˜์Šค๋กœ ๋ถ„๋ฅ˜ํ•ด์•ผ ํ• ์ง€ ๊ณ ๋ฏผ ํ›„ ๊ฐ„๋žตํ•˜๊ฒŒ ์ž‘์„ฑ.

  3. ๊ตฌํ˜„ํ•ด์•ผ ํ•  ๊ธฐ๋Šฅ ๋ชฉ๋ก ์ˆœ์„œ๋Œ€๋กœ Class ์ƒ์„ฑ ๋ฐ ์ฝ”๋“œ ์ž‘์„ฑ (๊ธฐ๋Šฅ์˜ ํ•จ์ˆ˜ํ™”).

    • ๊ตฌํ˜„ํ•ด์•ผ ํ•  ๊ธฐ๋Šฅ์— ๋”ฐ๋ฅธ Class ์„ค์ •.

    • ์ตœ๋Œ€ํ•œ Code Conventions๋ฅผ ์ง€ํ‚ค๋ฉด์„œ ์ž‘์„ฑ(๋ช…๋ช…์—๋„ ์‹ ๊ฒฝ์“ฐ๊ธฐ).

  4. 1์ฐจ ์ „์ฒด์ ์ธ ๋ฆฌํŽ™ํ† ๋ง ์ง„ํ–‰ (ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ค‘์ ์ ์œผ๋กœ ์ง„ํ–‰).

    • ์ „์ฒด ์ฝ”๋“œ๋ฅผ ๊ฒ€ํ† , ์žฌํ™•์ธํ•˜๋ฉด์„œ ๊ธฐ๋Šฅ์„ ์ข€ ๋” ์„ธ๋ถ„ํ™”์‹œ์ผœ ํ•จ์ˆ˜ํ™”ํ•˜๋Š” ๋ฆฌํŽ™ํ† ๋ง ์ง„ํ–‰.

    • Car ๊ฐ์ฒด์˜ ํ™œ์šฉ ํ™•์ธ (setPosition ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธ).

    • ์ƒ์ˆ˜๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ๋ถ€๋ถ„์„ ์ˆ˜์ •.

    • ์ค‘๋ณต์ ์ธ ์ฝ”๋“œ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธ ํ›„ ์ˆ˜์ •.

    • if-else๋ฌธ์ด ์กด์žฌํ•˜๋Š”์ง€, indent depth๊ฐ€ 3์„ ๋„˜์ง€ ์•Š๋Š”์ง€ ์—ฌ๋ถ€ ํ™•์ธ.

  5. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ ์‚ฌํ•ญ ์ค‘ Convention์„ ์ค‘์ ์ ์œผ๋กœ ํ™•์ธ.

    • code convention 1์ฐจ ์ฒดํฌ (ํŒŒ์ผ ๊ตฌ์กฐ, ๋“ค์—ฌ์“ฐ๊ธฐ, ์ฃผ์„, ์„ ์–ธ, ๋ฌธ, ๋นˆ ๊ณต๊ฐ„ ํ™•์ธ).

    • code convention 2์ฐจ ์ฒดํฌ (๋ช…๋ช… ๊ทœ์น™, ์ข‹์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์Šต๊ด€).

      • ํด๋ž˜์Šค, ๋ฉ”์„œ๋“œ, ๋ณ€์ˆ˜์˜ ์ด๋ฆ„์—์„œ ์ตœ๋Œ€ํ•œ ์—ญํ• ์ด ๋“œ๋Ÿฌ๋‚˜๋„๋ก ๋ช…๋ช… ์ˆ˜์ •.

      • ์ถœ๋ ฅ๋ฌธ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ์ƒ์ˆ˜๋กœ ์ˆ˜์ •.

    • code convention 3์ฐจ ์ฒดํฌ (Naver campus hackday code format ์ ์šฉ).

    • code convention 4์ฐจ ์ฒดํฌ (1์ฃผ์ฐจ ํ”„๋ฆฌ์ฝ”์Šค ํ”ผ๋“œ๋ฐฑ ์œ„์ฃผ ํ™•์ธ).

  6. ์ถ”๊ฐ€์ ์ธ ๋ฆฌํŽ™ํ† ๋ง ๊ณ„์† ์ง„ํ–‰.

    • ํด๋ž˜์Šค ๋ถ„๋ฆฌ๋ฅผ ์‹œ๋„.

      • ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” User ํด๋ž˜์Šค ์ถ”๊ฐ€(๋ถ„๋ฆฌ).

      • User ํด๋ž˜์Šค ์ถ”๊ฐ€์— ๋”ฐ๋ฅธ RacingGame ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ ์ผ๋ถ€ ์ˆ˜์ •(๋ถˆํ•„์š”ํ•œ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์ œ๊ฑฐ).


์ถ”๊ฐ€ ๋ฆฌํŽ™ํ† ๋ง ์ง„ํ–‰ - ํด๋ž˜์Šค ๋ถ„๋ฆฌ ์—ฐ์Šต

์ž์„ธํžˆ

์šฐ์•„ํ•œ ํ˜•์ œ๋“ค ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ์˜ ์ƒ๊ฐํ•˜๋ผ, ๊ฐ์ฒด์ง€ํ–ฅ์ฒ˜๋Ÿผ ์ฐธ๊ณ 

๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™ ์ฐธ๊ณ 


  • ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„ ์ด๋ฏธ์ง€

    ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„ ์ด๋ฏธ์ง€

  • ํด๋ž˜์Šค ๋ถ„๋ฅ˜ ์ง„ํ–‰

    • Input ํƒ€์ž…

    • Output ํƒ€์ž…

    • GameManager ํƒ€์ž…

    • Preprocessor ํƒ€์ž… - StringUtil ํƒ€์ž…์œผ๋กœ ๋ช…๋ช… ์ˆ˜์ •

    • Validator ํƒ€์ž…

    • Car ํƒ€์ž…

    • RacingGame ํƒ€์ž…

  • ์ „์ฒด ์ฝ”๋“œ ๋ฆฌํŽ™ํ† ๋ง ์™„๋ฃŒ

    • precourse week 1 ์ˆซ์ž ์•ผ๊ตฌ ๊ฒŒ์ž„์„ ํด๋ž˜์Šค ๋ถ„๋ฆฌ ๋ฆฌํŽ™ํ† ๋ง ํ•  ๋•Œ๋ณด๋‹ค ๋” ๊น”๋”ํ•˜๊ฒŒ ์ง„ํ–‰ ์™„๋ฃŒ.

    • ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ UI ๋กœ์ง์˜ ๋ถ„๋ฆฌ ์—ฐ์Šต.

    • getter ์‚ฌ์šฉ์„ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋Š” ํ˜•์‹์œผ๋กœ ์ˆ˜์ • ์—ฐ์Šต.

    • ๋ฌธ์ž์—ด์„ ๋‹ค๋ฃจ๋Š” ํด๋ž˜์Šค๋ฅผ ๋”ฐ๋กœ ๋ฝ‘๋Š” ์—ฐ์Šต.


์˜คํ”„๋ผ์ธ ํ…Œ์ŠคํŠธ ์ค€๋น„ - ์ตœ์ข… ๋ฆฌํŒฉํ† ๋ง ์—ฐ์Šต

์ค‘์ ์ ์ธ ์—ฐ์Šต ์ง„ํ–‰ ๋ถ€๋ถ„

  1. ์›์‹œํƒ€์ž…๊ณผ ๋ฌธ์ž์—ด ํฌ์žฅ ์—ฐ์Šต

    • Enum ๋˜๋Š” ํด๋ž˜์Šค๋กœ ํฌ์žฅ.
  2. ์ผ๊ธ‰ ์ปฌ๋ ‰์…˜ ์‚ฌ์šฉ

    • ์ปฌ๋ ‰์…˜ ๋‹จ ํ•˜๋‚˜๋งŒ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋กœ ๊ฐ€์ง€๋Š” ํด๋ž˜์Šค.

ํด๋ž˜์Šค ๋ถ„๋ฆฌ ๊ณ„ํš

  1. ์ž๋™์ฐจ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๋Š” ๊ฐ์ฒด์ธ Car.

  2. ์ž๋™์ฐจ์˜ ์œ„์น˜๋ฅผ ๊ฐ์‹ธ๋Š” ๊ฐ์ฒด์ธ Position.

  3. Car๋ฅผ List๋กœ ๊ฐ€์งˆ ์ผ๊ธ‰ ์ปฌ๋ ‰์…˜ ๊ฐ์ฒด์ธ Cars.

  4. Race ์ค‘๊ฐ„ ๊ณผ์ •์„ ์ €์žฅํ•ด๋‘˜ RaceStatus.

  5. Race ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•  RaceResult.

  6. Random ํ•œ ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์ „์ง„ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ๋Š” RandomNumberStrategy.

  7. Cars๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๋Š” CarFactory.

  8. ์‹œ๋„ ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๊ฐ์‹ธ๋Š” AttemptNumber.

  9. ๊ฒŒ์ž„์„ ์ „์ฒด ๊ด€๋ฆฌํ•˜๋Š” GameManager.

  10. ๊ฒŒ์ž„์„ ์ง„ํ–‰ํ•˜๋Š” RacingGame.

์ค‘์ ์œผ๋กœ ์ˆ˜์ •์„ ์ง„ํ–‰ํ•œ ๋ถ€๋ถ„

  1. ์™„๋ฒฝํ•œ UI, Business ๋กœ์ง ๋ถ„๋ฆฌ

    • ์ถœ๋ ฅ์„ ํ•ด์•ผํ•  ์ƒํ™ฉ๋“ค์„ ๋”ฐ๋กœ List๋กœ ๋งŒ๋“ค์–ด ์ €์žฅํ•˜๊ณ  ํ›„์— ํ•œ๋ฒˆ์— ์ถœ๋ ฅ.

    • Main๋ฌธ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ Business ๋กœ์ง์˜ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค ๋ฐ›์•„์˜จ ํ›„ UI ๋กœ์ง์œผ๋กœ ์ „๋‹ฌ.

  2. ์ผ๊ธ‰ ์ปฌ๋ ‰์…˜๊ณผ ์›์‹œํƒ€์ž… ๊ฐ์‹ธ๊ธฐ

    • ์ง์ „ 1์ฃผ์ฐจ ๊ณผ์ œ์— ์—ฐ์Šตํ•  ๋•Œ๋ณด๋‹ค ํ›จ์”ฌ ๋” ํŽธํ•ด์ง.

    • ๋‹จ์ง€ UI ๋ถ„๋ฆฌ๊ฐ€ ๋“ฑ์žฅํ•ด์„œ ์ข€ ๋” ์–ด์ƒ‰ํ•ด์ง„ ๋Š๋‚Œ.

  3. ์ตœ์ข… 3์ฃผ์ฐจ์— ์ข€ ๋” ์ƒ์„ธํžˆ ์ค€๋น„ํ•ด๋ณด๊ธฐ.

About

๐ŸŽ ํ”„๋ฆฌ์ฝ”์Šค - ์ž๋™์ฐจ ๊ฒฝ์ฃผ ๊ฒŒ์ž„ ๋ฏธ์…˜์„ ์ง„ํ–‰ํ•˜๋Š” Repository

Topics

Resources

Stars

Watchers

Forks

Languages