create-ax-project 1.0.0 โ†’ 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/package.json +1 -1
  2. package/template/.claude/CLAUDE.md +0 -7
  3. package/template/.claude/commands/CLAUDE.md +0 -0
  4. package/template/.claude/hooks/CLAUDE.md +0 -0
  5. package/template/.claude/skills/ai-collaboration/CLAUDE.md +0 -0
  6. package/template/.claude/skills/auto-checkpoint/CLAUDE.md +0 -0
  7. package/template/.claude/skills/context-compression/CLAUDE.md +0 -0
  8. package/template/.claude/skills/context-compression/prompts/CLAUDE.md +0 -0
  9. package/template/.claude/skills/output-validator/CLAUDE.md +0 -0
  10. package/template/.claude/skills/smart-handoff/CLAUDE.md +0 -0
  11. package/template/.claude/skills/stage-transition/CLAUDE.md +0 -0
  12. package/template/.claude/skills/stage-transition/prompts/CLAUDE.md +0 -0
  13. package/template/config/CLAUDE.md +0 -0
  14. package/template/scripts/CLAUDE.md +0 -0
  15. package/template/stages/01-brainstorm/HANDOFF.md +0 -110
  16. package/template/stages/01-brainstorm/inputs/CLAUDE.md +0 -0
  17. package/template/stages/01-brainstorm/inputs/project_brief.md +0 -40
  18. package/template/stages/01-brainstorm/outputs/CLAUDE.md +0 -0
  19. package/template/stages/01-brainstorm/outputs/ideas.md +0 -159
  20. package/template/stages/01-brainstorm/outputs/requirements_analysis.md +0 -222
  21. package/template/stages/01-brainstorm/prompts/CLAUDE.md +0 -0
  22. package/template/stages/01-brainstorm/templates/CLAUDE.md +0 -0
  23. package/template/stages/02-research/HANDOFF.md +0 -158
  24. package/template/stages/02-research/outputs/CLAUDE.md +0 -0
  25. package/template/stages/02-research/outputs/feasibility_report.md +0 -176
  26. package/template/stages/02-research/outputs/tech_research.md +0 -403
  27. package/template/stages/02-research/prompts/CLAUDE.md +0 -0
  28. package/template/stages/03-planning/HANDOFF.md +0 -168
  29. package/template/stages/03-planning/outputs/CLAUDE.md +0 -0
  30. package/template/stages/03-planning/outputs/architecture.md +0 -400
  31. package/template/stages/03-planning/outputs/implementation.yaml +0 -209
  32. package/template/stages/03-planning/outputs/project_plan.md +0 -204
  33. package/template/stages/03-planning/outputs/tech_stack.md +0 -176
  34. package/template/stages/03-planning/prompts/CLAUDE.md +0 -0
  35. package/template/stages/04-ui-ux/HANDOFF.md +0 -165
  36. package/template/stages/04-ui-ux/outputs/CLAUDE.md +0 -0
  37. package/template/stages/04-ui-ux/outputs/design_system.md +0 -449
  38. package/template/stages/04-ui-ux/outputs/user_flows.md +0 -321
  39. package/template/stages/04-ui-ux/outputs/wireframes.md +0 -241
  40. package/template/stages/04-ui-ux/prompts/CLAUDE.md +0 -0
  41. package/template/stages/05-task-management/HANDOFF.md +0 -187
  42. package/template/stages/05-task-management/outputs/CLAUDE.md +0 -0
  43. package/template/stages/05-task-management/outputs/milestones.md +0 -253
  44. package/template/stages/05-task-management/outputs/sprint_plan.md +0 -203
  45. package/template/stages/05-task-management/outputs/tasks.md +0 -402
  46. package/template/stages/05-task-management/prompts/CLAUDE.md +0 -0
  47. package/template/stages/05-task-management/templates/CLAUDE.md +0 -0
  48. package/template/stages/06-implementation/HANDOFF.md +0 -184
  49. package/template/stages/06-implementation/prompts/CLAUDE.md +0 -0
  50. package/template/stages/07-refactoring/HANDOFF.md +0 -82
  51. package/template/stages/07-refactoring/outputs/refactoring_report.md +0 -102
  52. package/template/stages/07-refactoring/prompts/CLAUDE.md +0 -0
  53. package/template/stages/08-qa/HANDOFF.md +0 -114
  54. package/template/stages/08-qa/outputs/qa_report.md +0 -138
  55. package/template/stages/08-qa/prompts/CLAUDE.md +0 -0
  56. package/template/stages/09-testing/HANDOFF.md +0 -118
  57. package/template/stages/09-testing/outputs/test_report.md +0 -146
  58. package/template/stages/09-testing/prompts/CLAUDE.md +0 -0
  59. package/template/stages/10-deployment/HANDOFF.md +0 -141
  60. package/template/stages/10-deployment/prompts/CLAUDE.md +0 -0
  61. package/template/stages/10-deployment/templates/CLAUDE.md +0 -0
  62. package/template/state/templates/CLAUDE.md +0 -0
@@ -1,321 +0,0 @@
1
- # ๐Ÿ”„ Snake Game - ์‚ฌ์šฉ์ž ํ”Œ๋กœ์šฐ
2
-
3
- > ์ƒ์„ฑ์ผ: 2026-01-21
4
- > ์Šคํ…Œ์ด์ง€: 04-ui-ux
5
- > ํ”„๋กœ์ ํŠธ: snake-game
6
-
7
- ---
8
-
9
- ## 1. ์ „์ฒด ๊ฒŒ์ž„ ํ”Œ๋กœ์šฐ
10
-
11
- ```mermaid
12
- graph TD
13
- A[์•ฑ ์ ‘์†] --> B[Start Screen]
14
-
15
- B --> |Start ๋ฒ„ํŠผ ํด๋ฆญ| C[Game Playing]
16
- B --> |How to Play| B1[Instructions Modal]
17
- B1 --> |๋‹ซ๊ธฐ| B
18
-
19
- C --> |๋ฐฉํ–ฅํ‚ค/์Šค์™€์ดํ”„| C
20
- C --> |ESC/P/Pause๋ฒ„ํŠผ| D[Pause Overlay]
21
-
22
- D --> |Resume| C
23
- D --> |Quit| B
24
-
25
- C --> |๋ฒฝ/์ž๊ธฐ๋ชธ ์ถฉ๋Œ| E[Game Over Modal]
26
-
27
- E --> F{์ตœ๊ณ  ์ ์ˆ˜ ๊ฐฑ์‹ ?}
28
- F -- Yes --> G[localStorage ์ €์žฅ]
29
- F -- No --> H[์ ์ˆ˜ ํ‘œ์‹œ]
30
- G --> H
31
-
32
- H --> |Play Again| C
33
- H --> |Main Menu| B
34
- ```
35
-
36
- ---
37
-
38
- ## 2. ํ•ต์‹ฌ ์‚ฌ์šฉ์ž ํ”Œ๋กœ์šฐ
39
-
40
- ### 2.1 ๊ฒŒ์ž„ ์‹œ์ž‘ ํ”Œ๋กœ์šฐ
41
-
42
- ```
43
- [Start Screen]
44
- โ”‚
45
- โ–ผ
46
- ์‚ฌ์šฉ์ž: Start ๋ฒ„ํŠผ ํด๋ฆญ ๋˜๋Š” Enter ํ‚ค
47
- โ”‚
48
- โ–ผ
49
- ์‹œ์Šคํ…œ: ๊ฒŒ์ž„ ์ƒํƒœ ์ดˆ๊ธฐํ™”
50
- โ”‚ - snake: ์ดˆ๊ธฐ ์œ„์น˜ (10,10)
51
- โ”‚ - food: ๋žœ๋ค ์œ„์น˜ ์ƒ์„ฑ
52
- โ”‚ - score: 0
53
- โ”‚ - direction: RIGHT
54
- โ”‚ - status: PLAYING
55
- โ”‚
56
- โ–ผ
57
- ์‹œ์Šคํ…œ: ๊ฒŒ์ž„ ๋ฃจํ”„ ์‹œ์ž‘ (requestAnimationFrame)
58
- โ”‚
59
- โ–ผ
60
- [Game Playing]
61
- ```
62
-
63
- ### 2.2 ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด ๋ฃจํ”„
64
-
65
- ```
66
- [Game Playing]
67
- โ”‚
68
- โ–ผ
69
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
70
- โ”‚ 1. ์ž…๋ ฅ ์ฒ˜๋ฆฌ โ”‚
71
- โ”‚ - ํ‚ค๋ณด๋“œ: Arrow Keys / WASD โ”‚
72
- โ”‚ - ํ„ฐ์น˜: Swipe / D-Pad โ”‚
73
- โ”‚ - ์—ญ๋ฐฉํ–ฅ ์ž…๋ ฅ ๋ฌด์‹œ โ”‚
74
- โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
75
- โ–ผ
76
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
77
- โ”‚ 2. ๊ฒŒ์ž„ ํ‹ฑ (TICK) โ”‚
78
- โ”‚ - ๋ฑ€ ๋จธ๋ฆฌ ์œ„์น˜ ๊ณ„์‚ฐ โ”‚
79
- โ”‚ - ์ถฉ๋Œ ๊ฐ์ง€ ์‹คํ–‰ โ”‚
80
- โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
81
- โ–ผ
82
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”
83
- โ”‚ ์ถฉ๋Œ ํƒ€์ž…? โ”‚
84
- โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜
85
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
86
- โ–ผ โ–ผ โ–ผ
87
- [๋ฒฝ/์ž๊ธฐ] [๋จน์ด] [์—†์Œ]
88
- โ”‚ โ”‚ โ”‚
89
- โ–ผ โ–ผ โ–ผ
90
- Game Over ์„ฑ์žฅ+์ ์ˆ˜ ์ด๋™
91
- โ”‚ โ”‚
92
- โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ–บ Canvas ๋ Œ๋”๋ง
93
- โ”‚
94
- โ–ผ
95
- ๋‹ค์Œ ํ”„๋ ˆ์ž„ ๋Œ€๊ธฐ
96
- โ”‚
97
- โ””โ”€โ”€โ–บ [๋ฃจํ”„ ๋ฐ˜๋ณต]
98
- ```
99
-
100
- ### 2.3 ์ผ์‹œ์ •์ง€ / ์žฌ๊ฐœ ํ”Œ๋กœ์šฐ
101
-
102
- ```
103
- [Game Playing]
104
- โ”‚
105
- โ–ผ
106
- ์‚ฌ์šฉ์ž: ESC / P / Pause ๋ฒ„ํŠผ
107
- โ”‚
108
- โ–ผ
109
- ์‹œ์Šคํ…œ: status โ†’ PAUSED
110
- โ”‚ - ๊ฒŒ์ž„ ๋ฃจํ”„ ์ •์ง€
111
- โ”‚ - Pause Overlay ํ‘œ์‹œ
112
- โ”‚
113
- โ–ผ
114
- [Pause Overlay]
115
- โ”‚
116
- โ”œโ”€โ”€โ–บ ์‚ฌ์šฉ์ž: Resume ๋ฒ„ํŠผ
117
- โ”‚ โ”‚
118
- โ”‚ โ–ผ
119
- โ”‚ ์‹œ์Šคํ…œ: status โ†’ PLAYING
120
- โ”‚ โ”‚ - ๊ฒŒ์ž„ ๋ฃจํ”„ ์žฌ๊ฐœ
121
- โ”‚ โ–ผ
122
- โ”‚ [Game Playing]
123
- โ”‚
124
- โ””โ”€โ”€โ–บ ์‚ฌ์šฉ์ž: Quit ๋ฒ„ํŠผ
125
- โ”‚
126
- โ–ผ
127
- ์‹œ์Šคํ…œ: ๊ฒŒ์ž„ ์ƒํƒœ ์ดˆ๊ธฐํ™”
128
- โ”‚
129
- โ–ผ
130
- [Start Screen]
131
- ```
132
-
133
- ### 2.4 ๊ฒŒ์ž„ ์˜ค๋ฒ„ ํ”Œ๋กœ์šฐ
134
-
135
- ```
136
- [Collision Detected]
137
- โ”‚
138
- โ–ผ
139
- ์‹œ์Šคํ…œ: status โ†’ GAME_OVER
140
- โ”‚ - ๊ฒŒ์ž„ ๋ฃจํ”„ ์ •์ง€
141
- โ”‚
142
- โ–ผ
143
- ์‹œ์Šคํ…œ: ์ตœ๊ณ  ์ ์ˆ˜ ๋น„๊ต
144
- โ”‚
145
- โ”œโ”€โ”€โ–บ score > highScore
146
- โ”‚ โ”‚
147
- โ”‚ โ–ผ
148
- โ”‚ localStorage ์ €์žฅ
149
- โ”‚ "NEW HIGH SCORE!" ํ‘œ์‹œ
150
- โ”‚
151
- โ””โ”€โ”€โ–บ score <= highScore
152
- โ”‚
153
- โ–ผ
154
- ์ผ๋ฐ˜ ์ ์ˆ˜ ํ‘œ์‹œ
155
- โ”‚
156
- โ–ผ
157
- [Game Over Modal]
158
- โ”‚
159
- โ”œโ”€โ”€โ–บ ์‚ฌ์šฉ์ž: Play Again (Enter)
160
- โ”‚ โ”‚
161
- โ”‚ โ–ผ
162
- โ”‚ ์‹œ์Šคํ…œ: ๊ฒŒ์ž„ ๋ฆฌ์…‹ + ์‹œ์ž‘
163
- โ”‚ โ”‚
164
- โ”‚ โ–ผ
165
- โ”‚ [Game Playing]
166
- โ”‚
167
- โ””โ”€โ”€โ–บ ์‚ฌ์šฉ์ž: Main Menu
168
- โ”‚
169
- โ–ผ
170
- ์‹œ์Šคํ…œ: ๊ฒŒ์ž„ ๋ฆฌ์…‹
171
- โ”‚
172
- โ–ผ
173
- [Start Screen]
174
- ```
175
-
176
- ---
177
-
178
- ## 3. ์ž…๋ ฅ ์ฒ˜๋ฆฌ ํ”Œ๋กœ์šฐ
179
-
180
- ### 3.1 ํ‚ค๋ณด๋“œ ์ž…๋ ฅ
181
-
182
- ```
183
- ํ‚ค๋ณด๋“œ ์ด๋ฒคํŠธ (keydown)
184
- โ”‚
185
- โ–ผ
186
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
187
- โ”‚ ํ‚ค ๋งคํ•‘ โ”‚
188
- โ”‚ ArrowUp / W โ†’ UP โ”‚
189
- โ”‚ ArrowDown / S โ†’ DOWN โ”‚
190
- โ”‚ ArrowLeft / A โ†’ LEFT โ”‚
191
- โ”‚ ArrowRight / D โ†’ RIGHT โ”‚
192
- โ”‚ ESC / P โ†’ PAUSE โ”‚
193
- โ”‚ Enter / Space โ†’ RESTART โ”‚
194
- โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
195
- โ–ผ
196
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
197
- โ”‚ ํ˜„์žฌ ์ƒํƒœ? โ”‚
198
- โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
199
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”
200
- โ–ผ โ–ผ
201
- [PLAYING] [GAME_OVER]
202
- โ”‚ โ”‚
203
- โ–ผ โ–ผ
204
- ๋ฐฉํ–ฅ ๋ณ€๊ฒฝ ์žฌ์‹œ์ž‘ ์ฒ˜๋ฆฌ
205
- (์—ญ๋ฐฉํ–ฅ ๋ฌด์‹œ)
206
- ```
207
-
208
- ### 3.2 ํ„ฐ์น˜/์Šค์™€์ดํ”„ ์ž…๋ ฅ
209
-
210
- ```
211
- ํ„ฐ์น˜ ์ด๋ฒคํŠธ
212
- โ”‚
213
- โ”œโ”€โ”€โ–บ touchstart
214
- โ”‚ - ์‹œ์ž‘ ์ขŒํ‘œ ์ €์žฅ (startX, startY)
215
- โ”‚ - ์‹œ์ž‘ ์‹œ๊ฐ„ ์ €์žฅ
216
- โ”‚
217
- โ””โ”€โ”€โ–บ touchend
218
- - ์ข…๋ฃŒ ์ขŒํ‘œ (endX, endY)
219
- โ”‚
220
- โ–ผ
221
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
222
- โ”‚ ์Šค์™€์ดํ”„ ํŒ์ • โ”‚
223
- โ”‚ - ๊ฑฐ๋ฆฌ > 50px (threshold) โ”‚
224
- โ”‚ - ์‹œ๊ฐ„ < 500ms โ”‚
225
- โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
226
- โ–ผ
227
- ๋ฐฉํ–ฅ ๊ณ„์‚ฐ (X vs Y delta)
228
- โ”‚
229
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
230
- โ–ผ โ–ผ
231
- |deltaX| > |deltaY| |deltaY| > |deltaX|
232
- โ”‚ โ”‚
233
- โ”Œโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”
234
- โ–ผ โ–ผ โ–ผ โ–ผ
235
- LEFT RIGHT UP DOWN
236
- ```
237
-
238
- ---
239
-
240
- ## 4. ์—๋Ÿฌ/์˜ˆ์™ธ ํ”Œ๋กœ์šฐ
241
-
242
- ### 4.1 localStorage ์ ‘๊ทผ ์‹คํŒจ
243
-
244
- ```
245
- localStorage ์ž‘์—… ์‹œ๋„
246
- โ”‚
247
- โ–ผ
248
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
249
- โ”‚ try-catch ์ฒ˜๋ฆฌ โ”‚
250
- โ”‚ โ”‚
251
- โ”‚ ์‹คํŒจ ์‹œ: โ”‚
252
- โ”‚ - ์ฝ˜์†” ๊ฒฝ๊ณ  ์ถœ๋ ฅ โ”‚
253
- โ”‚ - highScore = 0 ์œ ์ง€ โ”‚
254
- โ”‚ - ๊ฒŒ์ž„์€ ์ •์ƒ ์ง„ํ–‰ โ”‚
255
- โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
256
- ```
257
-
258
- ### 4.2 Canvas ์ง€์› ์•ˆ ๋จ
259
-
260
- ```
261
- Canvas ์ดˆ๊ธฐํ™”
262
- โ”‚
263
- โ–ผ
264
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
265
- โ”‚ getContext('2d') ํ˜ธ์ถœ โ”‚
266
- โ”‚ โ”‚
267
- โ”‚ null ๋ฐ˜ํ™˜ ์‹œ: โ”‚
268
- โ”‚ - ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ํ™”๋ฉด ํ‘œ์‹œ โ”‚
269
- โ”‚ - "Your browser does not โ”‚
270
- โ”‚ support Canvas" โ”‚
271
- โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
272
- ```
273
-
274
- ---
275
-
276
- ## 5. ์ƒํƒœ ์ „์ด ๋‹ค์ด์–ด๊ทธ๋žจ
277
-
278
- ```
279
- START_GAME
280
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
281
- โ”‚ โ”‚
282
- โ–ผ โ”‚
283
- [IDLE] โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ [PLAYING]
284
- โ–ฒ โ”‚
285
- โ”‚ RESTART โ”‚ PAUSE_GAME
286
- โ”‚ โ–ผ
287
- โ”‚ [PAUSED]
288
- โ”‚ โ”‚
289
- โ”‚ RESUME_GAME โ”‚
290
- โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
291
- โ”‚ โ”‚
292
- โ”‚ โ–ผ
293
- โ”‚ [PLAYING]
294
- โ”‚ โ”‚
295
- โ”‚ โ”‚ GAME_OVER (์ถฉ๋Œ)
296
- โ”‚ โ–ผ
297
- โ””โ”€โ”€ [GAME_OVER]
298
- ```
299
-
300
- ### ์ƒํƒœ๋ณ„ ํ—ˆ์šฉ ์•ก์…˜
301
-
302
- | ํ˜„์žฌ ์ƒํƒœ | ํ—ˆ์šฉ ์•ก์…˜ |
303
- |----------|----------|
304
- | IDLE | START_GAME |
305
- | PLAYING | CHANGE_DIRECTION, PAUSE_GAME, TICK, GAME_OVER |
306
- | PAUSED | RESUME_GAME, RESTART |
307
- | GAME_OVER | RESTART |
308
-
309
- ---
310
-
311
- ## โœ… ์‚ฌ์šฉ์ž ํ”Œ๋กœ์šฐ ์ฒดํฌ๋ฆฌ์ŠคํŠธ
312
-
313
- - [x] ์ „์ฒด ๊ฒŒ์ž„ ํ”Œ๋กœ์šฐ ๋‹ค์ด์–ด๊ทธ๋žจ
314
- - [x] ๊ฒŒ์ž„ ์‹œ์ž‘ ํ”Œ๋กœ์šฐ
315
- - [x] ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด ๋ฃจํ”„
316
- - [x] ์ผ์‹œ์ •์ง€/์žฌ๊ฐœ ํ”Œ๋กœ์šฐ
317
- - [x] ๊ฒŒ์ž„ ์˜ค๋ฒ„ ํ”Œ๋กœ์šฐ
318
- - [x] ํ‚ค๋ณด๋“œ ์ž…๋ ฅ ์ฒ˜๋ฆฌ
319
- - [x] ํ„ฐ์น˜/์Šค์™€์ดํ”„ ์ž…๋ ฅ ์ฒ˜๋ฆฌ
320
- - [x] ์—๋Ÿฌ/์˜ˆ์™ธ ํ”Œ๋กœ์šฐ
321
- - [x] ์ƒํƒœ ์ „์ด ๋‹ค์ด์–ด๊ทธ๋žจ
@@ -1,241 +0,0 @@
1
- # ๐ŸŽจ Snake Game - ์™€์ด์–ดํ”„๋ ˆ์ž„
2
-
3
- > ์ƒ์„ฑ์ผ: 2026-01-21
4
- > ์Šคํ…Œ์ด์ง€: 04-ui-ux
5
- > ํ”„๋กœ์ ํŠธ: snake-game
6
- > AI ๋„๊ตฌ: Gemini CLI
7
-
8
- ---
9
-
10
- ## 1. ํ™”๋ฉด ๊ฐœ์š”
11
-
12
- | ํ™”๋ฉด | ์„ค๋ช… | ์ปดํฌ๋„ŒํŠธ |
13
- |------|------|----------|
14
- | Start Screen | ๊ฒŒ์ž„ ์‹œ์ž‘ ์ „ ํƒ€์ดํ‹€ ํ™”๋ฉด | StartScreen |
15
- | Desktop Play | ๋ฐ์Šคํฌํ†ฑ ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด | GameEngine, CanvasLayer, ScoreBoard |
16
- | Mobile Play | ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด + ํ„ฐ์น˜ ์ปจํŠธ๋กค | GameEngine, MobileControls |
17
- | Pause Overlay | ์ผ์‹œ์ •์ง€ ์˜ค๋ฒ„๋ ˆ์ด | PauseOverlay |
18
- | Game Over | ๊ฒŒ์ž„ ์˜ค๋ฒ„ ๋ชจ๋‹ฌ | GameOverModal |
19
-
20
- ---
21
-
22
- ## 2. ์‹œ์ž‘ ํ™”๋ฉด (Start Screen)
23
-
24
- ```
25
- +----------------------------------------+
26
- | |
27
- | S N A K E |
28
- | (Neon Logo) |
29
- | |
30
- | High Score: 1,250 |
31
- | |
32
- | +--------------------------+ |
33
- | | GAME START | |
34
- | +--------------------------+ |
35
- | |
36
- | [ How to Play ] [ Settings ] |
37
- | |
38
- | (c) 2026 Snake Game |
39
- +----------------------------------------+
40
- ```
41
-
42
- ### ์ƒ์„ธ ๋ช…์„ธ
43
-
44
- | ์š”์†Œ | ์Šคํƒ€์ผ | ์ƒํ˜ธ์ž‘์šฉ |
45
- |------|--------|----------|
46
- | ๋กœ๊ณ  | ๋„ค์˜จ ๊ทธ๋ฆฐ (#00ff88), Glow ํšจ๊ณผ | - |
47
- | High Score | ๋…ธ๋ž€์ƒ‰ (#f0e130), ์„œ๋ธŒ ํ…์ŠคํŠธ | - |
48
- | Start ๋ฒ„ํŠผ | Primary ๋ฒ„ํŠผ, ๋„ค์˜จ ํ…Œ๋‘๋ฆฌ | ํด๋ฆญ/Enter โ†’ ๊ฒŒ์ž„ ์‹œ์ž‘ |
49
- | How to Play | ํ…์ŠคํŠธ ๋งํฌ | ํด๋ฆญ โ†’ ์„ค๋ช… ๋ชจ๋‹ฌ |
50
-
51
- ---
52
-
53
- ## 3. ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด - ๋ฐ์Šคํฌํ†ฑ (Desktop)
54
-
55
- ```
56
- +----------------------------------------+
57
- | SCORE: 120 BEST: 1,250 |
58
- +----------------------------------------+
59
- | |
60
- | +----------------------------------+ |
61
- | | | |
62
- | | [Canvas 400 x 400] | |
63
- | | | |
64
- | | ###O @ | |
65
- | | (Snake) (Food) | |
66
- | | | |
67
- | | | |
68
- | +----------------------------------+ |
69
- | |
70
- | [ESC/P] Pause [Arrow Keys] Move |
71
- +----------------------------------------+
72
- ```
73
-
74
- ### ๋ ˆ์ด์•„์›ƒ ๋ช…์„ธ
75
-
76
- | ์˜์—ญ | ํฌ๊ธฐ | ๋ฐฐ์น˜ |
77
- |------|------|------|
78
- | ScoreBoard | 100% width, 48px height | ์ƒ๋‹จ ๊ณ ์ • |
79
- | Canvas | 400x400px (20x20 * 20px) | ์ค‘์•™ |
80
- | Controls Hint | Auto | ํ•˜๋‹จ |
81
-
82
- ### ์š”์†Œ ๋ช…์„ธ
83
-
84
- | ์š”์†Œ | ์Šคํƒ€์ผ |
85
- |------|--------|
86
- | Score ํ…์ŠคํŠธ | ํ™”์ดํŠธ (#ffffff), ์ขŒ์ธก ์ •๋ ฌ |
87
- | Best Score ํ…์ŠคํŠธ | ๊ณจ๋“œ (#f0e130), ์šฐ์ธก ์ •๋ ฌ |
88
- | Canvas ๋ฐฐ๊ฒฝ | #16213e |
89
- | Grid Lines | rgba(255, 255, 255, 0.05) |
90
- | Snake Head | #00cc6a + Glow |
91
- | Snake Body | #00ff88 + Glow |
92
- | Food | #ff6b6b + Glow |
93
-
94
- ---
95
-
96
- ## 4. ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด - ๋ชจ๋ฐ”์ผ (Mobile + Touch Controls)
97
-
98
- ```
99
- +----------------------------------------+
100
- | SCORE: 120 [||] (Pause) |
101
- +----------------------------------------+
102
- | |
103
- | +----------------------------------+ |
104
- | | | |
105
- | | [Responsive Canvas] | |
106
- | | (max-width) | |
107
- | | | |
108
- | +----------------------------------+ |
109
- | |
110
- | [ ^ ] |
111
- | UP |
112
- | |
113
- | [ < ] [ > ] |
114
- | LEFT RIGHT |
115
- | |
116
- | [ v ] |
117
- | DOWN |
118
- +----------------------------------------+
119
- ```
120
-
121
- ### ๋ชจ๋ฐ”์ผ ๋ ˆ์ด์•„์›ƒ
122
-
123
- | ์˜์—ญ | ํฌ๊ธฐ | ๋ฐฐ์น˜ |
124
- |------|------|------|
125
- | ScoreBoard | 100% width, 44px | ์ƒ๋‹จ |
126
- | Pause ๋ฒ„ํŠผ | 44x44px | ์ƒ๋‹จ ์šฐ์ธก |
127
- | Canvas | calc(100vw - 32px), max 400px | ์ค‘์•™ |
128
- | D-Pad Controls | 200x200px | ํ•˜๋‹จ ์ค‘์•™ |
129
-
130
- ### D-Pad ๋ฒ„ํŠผ ๋ช…์„ธ
131
-
132
- | ๋ฒ„ํŠผ | ํฌ๊ธฐ | ํ„ฐ์น˜ ์˜์—ญ |
133
- |------|------|----------|
134
- | ์ƒ/ํ•˜/์ขŒ/์šฐ | 56x56px | 64x64px (์ตœ์†Œ) |
135
- | ํ™œ์„ฑ ์ƒํƒœ | ๋ฐฐ๊ฒฝ Primary, ํ…Œ๋‘๋ฆฌ ๊ฐ•์กฐ |
136
-
137
- ---
138
-
139
- ## 5. ์ผ์‹œ์ •์ง€ ์˜ค๋ฒ„๋ ˆ์ด (Pause Overlay)
140
-
141
- ```
142
- +----------------------------------------+
143
- | SCORE: 120 BEST: 1,250 |
144
- +----------------------------------------+
145
- | +----------------------------------+ |
146
- | | | |
147
- | | โ–Œโ–Œ PAUSED | |
148
- | | | |
149
- | | +----------------+ | |
150
- | | | RESUME | | |
151
- | | +----------------+ | |
152
- | | | |
153
- | | +----------------+ | |
154
- | | | QUIT | | |
155
- | | +----------------+ | |
156
- | | | |
157
- | +----------------------------------+ |
158
- | |
159
- +----------------------------------------+
160
- ```
161
-
162
- ### ์˜ค๋ฒ„๋ ˆ์ด ๋ช…์„ธ
163
-
164
- | ์š”์†Œ | ์Šคํƒ€์ผ |
165
- |------|--------|
166
- | ๋ฐฐ๊ฒฝ | rgba(0, 0, 0, 0.8), ๋ธ”๋Ÿฌ ํšจ๊ณผ |
167
- | PAUSED ํ…์ŠคํŠธ | ํ™”์ดํŠธ, ํฐ ํฐํŠธ |
168
- | Resume ๋ฒ„ํŠผ | Primary ๋ฒ„ํŠผ (#00ff88) |
169
- | Quit ๋ฒ„ํŠผ | Secondary ๋ฒ„ํŠผ (ํˆฌ๋ช…, ํ…Œ๋‘๋ฆฌ๋งŒ) |
170
-
171
- ---
172
-
173
- ## 6. ๊ฒŒ์ž„ ์˜ค๋ฒ„ ๋ชจ๋‹ฌ (Game Over Modal)
174
-
175
- ```
176
- +----------------------------------------+
177
- | (Dimmed Background Overlay) |
178
- | |
179
- | +------------------------------+ |
180
- | | | |
181
- | | G A M E O V E R | |
182
- | | | |
183
- | | Final Score: 120 | |
184
- | | | |
185
- | | โ˜… NEW HIGH SCORE! โ˜… | |
186
- | | | |
187
- | | +------------------------+ | |
188
- | | | PLAY AGAIN (Enter) | | |
189
- | | +------------------------+ | |
190
- | | | |
191
- | | [ Main Menu ] | |
192
- | +------------------------------+ |
193
- | |
194
- +----------------------------------------+
195
- ```
196
-
197
- ### ๋ชจ๋‹ฌ ๋ช…์„ธ
198
-
199
- | ์š”์†Œ | ์Šคํƒ€์ผ | ์กฐ๊ฑด |
200
- |------|--------|------|
201
- | ๋ฐฐ๊ฒฝ ์˜ค๋ฒ„๋ ˆ์ด | rgba(0, 0, 0, 0.85) | - |
202
- | ๋ชจ๋‹ฌ ๋ฐ•์Šค | #16213e, ๋„ค์˜จ ํ…Œ๋‘๋ฆฌ, ๋‘ฅ๊ทผ ๋ชจ์„œ๋ฆฌ | - |
203
- | GAME OVER | ๋ ˆ๋“œ (#ff6b6b), Glow | - |
204
- | Final Score | ํ™”์ดํŠธ, ํฐ ํฐํŠธ | - |
205
- | NEW HIGH SCORE | ๊ณจ๋“œ (#f0e130), ๊นœ๋นก์ž„ | score > highScore |
206
- | Play Again | Primary ๋ฒ„ํŠผ, ์ „์ฒด ๋„ˆ๋น„ | - |
207
- | Main Menu | ํ…์ŠคํŠธ ๋งํฌ | - |
208
-
209
- ---
210
-
211
- ## 7. ๋ฐ˜์‘ํ˜• ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ
212
-
213
- | ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ | ํ™”๋ฉด ๋„ˆ๋น„ | ๋ณ€๊ฒฝ ์‚ฌํ•ญ |
214
- |--------------|----------|----------|
215
- | Mobile | < 480px | ํ„ฐ์น˜ ์ปจํŠธ๋กค ํ™œ์„ฑํ™”, ์บ”๋ฒ„์Šค ์ถ•์†Œ |
216
- | Tablet | 480px - 768px | ํ„ฐ์น˜ ์ปจํŠธ๋กค ์„ ํƒ์  |
217
- | Desktop | > 768px | ํ‚ค๋ณด๋“œ ์ปจํŠธ๋กค, ํ’€ ์บ”๋ฒ„์Šค |
218
-
219
- ---
220
-
221
- ## 8. ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ช…์„ธ
222
-
223
- | ์• ๋‹ˆ๋ฉ”์ด์…˜ | ํŠธ๋ฆฌ๊ฑฐ | ํšจ๊ณผ |
224
- |-----------|--------|------|
225
- | Score Pulse | ์ ์ˆ˜ ์ฆ๊ฐ€ | scale(1.2) โ†’ scale(1), 200ms |
226
- | Modal Enter | ๋ชจ๋‹ฌ ์—ด๋ฆผ | opacity 0โ†’1, scale(0.9โ†’1), 300ms |
227
- | Modal Exit | ๋ชจ๋‹ฌ ๋‹ซํž˜ | opacity 1โ†’0, 200ms |
228
- | Button Hover | ๋ฒ„ํŠผ ํ˜ธ๋ฒ„ | ๋ฐฐ๊ฒฝ์ƒ‰ ์ฑ„์›€, 100ms |
229
- | Snake Glow | ํ•ญ์ƒ | box-shadow pulse, 1s loop |
230
-
231
- ---
232
-
233
- ## โœ… ์™€์ด์–ดํ”„๋ ˆ์ž„ ์ฒดํฌ๋ฆฌ์ŠคํŠธ
234
-
235
- - [x] ์‹œ์ž‘ ํ™”๋ฉด
236
- - [x] ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด (๋ฐ์Šคํฌํ†ฑ)
237
- - [x] ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด (๋ชจ๋ฐ”์ผ)
238
- - [x] ์ผ์‹œ์ •์ง€ ์˜ค๋ฒ„๋ ˆ์ด
239
- - [x] ๊ฒŒ์ž„ ์˜ค๋ฒ„ ๋ชจ๋‹ฌ
240
- - [x] ๋ฐ˜์‘ํ˜• ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ
241
- - [x] ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ช…์„ธ
File without changes