1# Snake Game Examples
2
3ν°λ―Έλ κΈ°λ° λ± κ²μ νλ‘μ νΈ μμ νμΌλ€μ
λλ€.
4
5## νμΌ κ΅¬μ±
6
7### 1. `ansi_demo.c`
8ANSI escape codes μμ° νλ‘κ·Έλ¨
9- 컀μ μ΄λ, μμ, λ°μ€ 그리기 λ±μ 보μ¬μ€λλ€.
10
11**μ»΄νμΌ λ° μ€ν:**
12```bash
13gcc -o ansi_demo ansi_demo.c
14./ansi_demo
15```
16
17### 2. `input_demo.c`
18λΉλκΈ° ν€λ³΄λ μ
λ ₯ μμ° νλ‘κ·Έλ¨
19- termiosλ₯Ό μ¬μ©ν non-blocking μ
λ ₯ μ²λ¦¬
20- λ°©ν₯ν€μ WASD ν€ μ§μ
21
22**μ»΄νμΌ λ° μ€ν:**
23```bash
24gcc -o input_demo input_demo.c
25./input_demo
26```
27
28**μ‘°μλ²:**
29- λ°©ν₯ν€ λλ WASD: μ΄λ
30- μ€νμ΄μ€: μ ν
31- Q: μ’
λ£
32
33### 3. `snake_types.h`
34λ± κ²μ λ°μ΄ν° ꡬ쑰 μ μ
35- κ²μμ νμν λͺ¨λ νμ
κ³Ό μμ μ μ
36- λ€λ₯Έ νμΌμμ includeνμ¬ μ¬μ©
37
38### 4. `snake.c`
39λ± κ²μ ν΅μ¬ λ‘μ§ κ΅¬ν
40- λ± μμ±/ν΄μ , μ΄λ, μΆ©λ κ²μ¬ λ±
41- `snake_types.h`λ₯Ό μ¬μ©νλ λͺ¨λν ꡬν
42
43**μ»΄νμΌ (λ¨λ
μ€ν λΆκ°):**
44```bash
45# λ€λ₯Έ νμΌκ³Ό ν¨κ» λ§ν¬ν΄μΌ ν¨
46gcc -c snake.c -o snake.o
47```
48
49### 5. `snake_game.c`
50μμ±λ λ± κ²μ (ANSI escape codes μ¬μ©)
51- λ
립μ μΌλ‘ λμνλ μμ ν κ²μ
52- μΈλΆ λΌμ΄λΈλ¬λ¦¬ νμ μμ
53
54**μ»΄νμΌ λ° μ€ν:**
55```bash
56gcc -o snake_game snake_game.c
57./snake_game
58```
59
60**μ‘°μλ²:**
61- λ°©ν₯ν€ λλ WASD: λ± μ΄λ
62- P: μΌμμ μ§
63- Q: μ’
λ£
64- R: μ¬μμ (κ²μ μ€λ² ν)
65
66**κΈ°λ₯:**
67- μ μ μμ€ν
68- μλ μ¦κ° (μμ λ¨Ήμμλ‘ λΉ¨λΌμ§)
69- μ΅κ³ μ μ μ μ₯ (`.snake_highscore` νμΌ)
70- μΌμμ μ§
71- μμ νμ
72
73### 6. `snake_ncurses.c`
74NCurses λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©ν ν₯μλ λ²μ
75
76**β οΈ μ΄ νμΌμ ncurses λΌμ΄λΈλ¬λ¦¬κ° νμν©λλ€!**
77
78**λΌμ΄λΈλ¬λ¦¬ μ€μΉ:**
79```bash
80# macOS
81brew install ncurses
82
83# Ubuntu/Debian
84sudo apt install libncurses5-dev
85
86# Fedora/RHEL
87sudo dnf install ncurses-devel
88```
89
90**μ»΄νμΌ λ° μ€ν:**
91```bash
92# macOS
93gcc -o snake_ncurses snake_ncurses.c -lncurses
94
95# Linux
96gcc -o snake_ncurses snake_ncurses.c -lncurses
97
98# μ€ν
99./snake_ncurses
100```
101
102**μ‘°μλ²:**
103- λ°©ν₯ν€ λλ WASD: λ± μ΄λ
104- P: μΌμμ μ§
105- Q: μ’
λ£
106- R: μ¬μμ (κ²μ μ€λ² ν)
107
108**ncurses λ²μ μ μ₯μ :**
109- λ κΉλν νλ©΄ μ²λ¦¬
110- μλ λ²νΌλ§ λ° κΉλΉ‘μ λ°©μ§
111- νμ€ λ°μ€ λ¬Έμ μ¬μ©
112- λ λμ μμ κ΄λ¦¬
113
114## νμ΅ μμ
115
1161. **`ansi_demo.c`** - ANSI escape codes μ΄ν΄
1172. **`input_demo.c`** - λΉλκΈ° μ
λ ₯ μ²λ¦¬ μ΄ν΄
1183. **`snake_types.h`** - κ²μ λ°μ΄ν° ꡬ쑰 νμ
1194. **`snake.c`** - κ²μ λ‘μ§ κ΅¬ν νμ΅
1205. **`snake_game.c`** - μμ±λ κ²μ λΆμ
1216. **`snake_ncurses.c`** - ncurses λΌμ΄λΈλ¬λ¦¬ νμ© (μ ν)
122
123## κ°λ° νκ²½
124
125- C11 νμ€
126- POSIX νΈν μμ€ν
(Linux, macOS, BSD)
127- ν°λ―Έλ: UTF-8 μ§μ νμ
128- μ»΄νμΌλ¬: GCC λλ Clang
129
130## μ°Έκ³ μλ£
131
132μ΄ μμ λ λ€μ νμ΅ μλ£λ₯Ό κΈ°λ°μΌλ‘ ν©λλ€:
133- `/content/ko/C_Programming/11_Project_Snake_Game.md`
134
135## λ¬Έμ ν΄κ²°
136
137### λ¬Έμ : λ°μ€ λ¬Έμκ° κΉ¨μ Έ 보μ
138**ν΄κ²°:** ν°λ―Έλμ΄ UTF-8μ μ§μνλμ§ νμΈ
139```bash
140echo $LANG
141# μΆλ ₯ μ: en_US.UTF-8 λλ ko_KR.UTF-8
142```
143
144### λ¬Έμ : ν€ μ
λ ₯μ΄ μλνμ§ μμ
145**ν΄κ²°:** ν°λ―Έλμ΄ ANSI escape sequencesλ₯Ό μ§μνλμ§ νμΈ
146
147### λ¬Έμ : ncurses λ§ν¬ μ€λ₯
148**ν΄κ²°:** ncurses κ°λ° ν¨ν€μ§ μ€μΉ νμΈ
149```bash
150# macOS
151brew list ncurses
152
153# Ubuntu
154dpkg -l | grep libncurses
155```
156
157## λΌμ΄μ μ€
158
159κ΅μ‘ λͺ©μ μΌλ‘ μμ λ‘κ² μ¬μ© κ°λ₯ν©λλ€.