- μ¬μ©μ 1λͺ μ λ³Όλ§ κ²μ μ μλ₯Ό κ΄λ¦¬ν μ μλ νλ‘κ·Έλ¨μ ꡬννλ€.
- κ° νλ μμ΄ μ€νΈλΌμ΄ν¬μ΄λ©΄ "X", μ€νμ΄μ΄λ©΄ "9 | /", λ―Έμ€μ΄λ©΄ "8 | 1"κ³Ό κ°μ΄ μΆλ ₯νλλ‘ κ΅¬ννλ€.
- μ€νΈλΌμ΄ν¬(strike) : νλ μμ 첫λ²μ§Έ ν¬κ΅¬μμ λͺ¨λ ν(10κ°)μ μ°λ¬νΈλ¦° μν
- μ€νμ΄(spare) : νλ μμ λλ²μ¬ ν¬κ΅¬μμ λͺ¨λ ν(10κ°)μ μ°λ¬νΈλ¦° μν
- λ―Έμ€(miss) : νλ μμ λλ²μ¬ ν¬κ΅¬μμλ λͺ¨λ νμ΄ μ°λ¬μ§μ§ μμ μν
- κ±°ν°(gutter) : νμ νλλ μ°λ¬νΈλ¦¬μ§ λͺ»ν μν. κ±°ν°λ "-"λ‘ νμ
- μ€νΈλΌμ΄ν¬λ λ€μ 2λ²μ ν¬κ΅¬κΉμ§ μ μλ₯Ό ν©μ°ν΄μΌ νλ€. μ€νμ΄λ λ€μ 1λ²μ ν¬κ΅¬κΉμ§ μ μλ₯Ό ν©μ°ν΄μΌ νλ€.
- 10 νλ μμ μ€νΈλΌμ΄ν¬μ΄κ±°λ μ€νμ΄μ΄λ©΄ ν λ²μ λ ν¬κ΅¬ν μ μλ€.
- κ°μ²΄μ§ν₯ 5μμΉ (SOLID) μ μ§ν€λ©΄μ νλ‘κ·Έλλ°νλ€.
- SRP (λ¨μΌμ±
μμ μμΉ: Single Responsibility Principle)
- μμ±λ ν΄λμ€λ νλμ κΈ°λ₯λ§ κ°μ§λ©° ν΄λμ€κ° μ 곡νλ λͺ¨λ μλΉμ€λ κ·Έ νλμ μ± μ(λ³νμ μΆ: axis of change)μ μννλ λ° μ§μ€λμ΄ μμ΄μΌ νλ€
- OCP (κ°λ°©νμμ μμΉ: Open Close Principle)
- μννΈμ¨μ΄μ ꡬμ±μμ(μ»΄ν¬λνΈ, ν΄λμ€, λͺ¨λ, ν¨μ)λ νμ₯μλ μ΄λ €μκ³ , λ³κ²½μλ λ«νμμ΄μΌ νλ€.
- LSP (리μ€μ½λΈ μΉνμ μμΉ: The Liskov Substitution Principle)
- μλΈ νμ μ μΈμ λ κΈ°λ° νμ μΌλ‘ κ΅μ²΄ν μ μμ΄μΌ νλ€. μ¦, μλΈ νμ μ μΈμ λ κΈ°λ° νμ κ³Ό νΈνλ μ μμ΄μΌ νλ€.
- ISP (μΈν°νμ΄μ€ λΆλ¦¬μ μμΉ: Interface Segregation Principle)
- ν ν΄λμ€λ μμ μ΄ μ¬μ©νμ§ μλ μΈν°νμ΄μ€λ ꡬννμ§ λ§μμΌ νλ€.
- DIP (μμ‘΄μ±μμ μ μμΉ: Dependency Inversion Principle)
- ꡬ쑰μ λμμΈμμ λ°μνλ νμ λ 벨 λͺ¨λμ λ³κ²½μ΄ μμ λ 벨 λͺ¨λμ λ³κ²½μ μꡬνλ μκ³κ΄κ³λ₯Ό λλ μλ―Έμ μμ μμΉμ΄λ€.
- SRP (λ¨μΌμ±
μμ μμΉ: Single Responsibility Principle)
- λ³Όλ§ κ²μμ μ μ κ³μ° λ°©μ μλ μ¬λμ λ°λ‘ ꡬνμ μμνλ€.
- μ μ κ³μ° λ°©μμ λͺ¨λ₯΄λ μ¬λμ ꡬκΈμμ "λ³Όλ§ μ μ κ³μ°λ²"κ³Ό κ°μ ν€μλλ‘ κ²μν΄ λ³Όλ§ κ²μμ μ μ κ³μ° λ°©μμ νμ΅ν ν ꡬνμ μμνλ€.
νλ μ΄μ΄ μ΄λ¦μ(3 english letters)?: PJS
| NAME | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 |
| PJS | | | | | | | | | | |
| | | | | | | | | | | |
1νλ μ ν¬κ΅¬ : 10
| NAME | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 |
| PJS | X | | | | | | | | | |
| | | | | | | | | | | |
2νλ μ ν¬κ΅¬ : 8
| NAME | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 |
| PJS | X | 8 | | | | | | | | |
| | | | | | | | | | | |
2νλ μ ν¬κ΅¬ : 2
| NAME | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 |
| PJS | X | 8|/ | | | | | | | | |
| | 20 | | | | | | | | | |
3νλ μ ν¬κ΅¬ : 8
| NAME | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 |
| PJS | X | 8|/ | 8 | | | | | | | |
| | 20 | 38 | | | | | | | | |
3νλ μ ν¬κ΅¬ : 1
| NAME | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 |
| PJS | X | 8|/ | 8|1 | | | | | | | |
| | 20 | 38 | 47 | | | | | | | |
...
- μ μλ₯Ό ꡬνλ μν μ κ° Frameμ΄ λ΄λΉν μ μλλ‘ κ΅¬νν΄ λ³Έλ€. Frameμ΄ μμ μ μ μλ₯Ό ꡬνλ €λ©΄ λ€μ Frameμ μ κ·Όν μ μμ΄μΌ νλ€. Frameμ΄ LinkedListμ κ°μ μλ£ κ΅¬μ‘° κΈ°λ°μΌλ‘ ꡬνν΄ λ³Έλ€.
- Frame μΈλΆμμ μ μλ₯Ό κ³μ°ν΄ setνλ κ²μ΄ μλλΌ Frame μμ²΄κ° μ μλ₯Ό κ³μ°ν μ μλλ‘ νλ€.
Frame frame = new Frame(frameNo);
frame.bowl(10);
frame.bowl(8);
frame.bowl(2);
int score = frame.getScore();
// scoreλ 20μ λ°νν΄μΌ νλ€.
- μλ°μ λ€νμ±μ μ μ©ν΄ λ‘μ§ κ΅¬νμμ λ°μνλ μλ§μ if/elseλ₯Ό μ κ±°νλ€.
- ꡬν μ€ ν΄κ²°μ± μ μ°ΎκΈ° νλ κ²½μ° λ³Όλ§ μ μν 3λ¨κ³ - ννΈ μμ ννΈλ₯Ό μ°Έκ³ ν΄ κ΅¬νν΄ λ³Έλ€.
- λ¨, μ λ§ ν΄κ²°μ± μ μ°ΎμΌλ €λ€ ν¬κΈ°νκ³ μΆμ μν©μ΄ λμ λ μ°Έκ³ ν κ²μ μΆμ²νλ€.