ํ๋ก์ ํธ ๋๊ธฐ


์ด ํ๋ก์ ํธ๊ฐ ์ง๋ขฐ์ฐพ๊ธฐ์ฌ์ผ ํ๋ ํฐ ์ด์ ๋ ์๋ค. mobx๋ฅผ ์จ๋ณด๋ ๊ฒ์ ํฐ ์๋ฏธ๋ฅผ ๋ ํ๋ก์ ํธ์๋ค.
๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ์ ๊ตฌํ์ด ์๋ฃ๋์๊ณ ์์ผ๋ก๋ ์ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ, ๋ฒ๊ทธ ์์ ์ ์งํํ ์์ ์ด๋ค.
stack๐
- CRA-typescript
- eslint
- prettier
- styled-component
- mobx
์ง๋ขฐ์ฐพ๊ธฐ๋ฅผ ๋ง๋ค๊ธฐ๋ก ํ๋ค๋ฉด, ์ด๋ฐ ๊ฒ์ ๊ตฌํ์ด ์ต์ํ์ง ์์ ๋ ๋ง๋งํ ์ ์๋ค.
๋ฐ๋ก ์ฝ๋๋ฅผ ๋ณด๊ณ ๋ฐ๋ผ ํ๋ ๊ฒ๋ ์ข์ง๋ง
์ง์ ์๊ฐํด๋ณด๋ฉฐ ๊ตฌํํด๋ณด๊ณ ์ถ์ ์ฌ๋์ ๋ด๊ฐ ๊ตฌํํ๋ฉด์ ์๊ฐํ ์์๋ฅผ ์์ฑํ์ผ๋ ๊ฐ์ด๋๊ฐ ํ์ํ๋ค๋ฉด ์ฐธ๊ณ ํ์๊ธธ!๐๐ผ
์ง๋ขฐ์ฐพ๊ธฐ ๊ตฌํ ๊ฐ์ด๋
- matrix ํํ์ ๊ฒ์ ๋ณด๋๋ฅผ ๋ง๋ ๋ค. ( ๋๋ 8x8 ๋ก ์ธํ ํ๋ค. Array์ ๋ด์ฅ ๋ฉ์๋์ธ from() ๊ณผ fill()์ ์ฌ์ฉํ๋ค. )
- ์ด๊ธฐ ๊ฐ์ 0, ์ง๋ขฐ๊ฐ ์๋ ๊ณณ์ 1๋ก ํ๊ณ ๋๋คํ ์์น์ 1์ ๋ฃ๋๋ก ํ๋ค.
- (0,0) ๋ถํฐ ํ์ฌ cell์ ๊ฐ์ผ ๋ชจ๋ cell์ ๊ฐ์ ํ์ธํ๊ณ 1 (์ง๋ขฐ)์ ์๋ฅผ ์ธ์ด ๊ฐ์ ๋ฃ๋๋ค.
- clickํ cell ์ฃผ์ ๋ชจ๋ cell์ ์ด์ด๋ณผ ์ ์๋๋ก ํ๋ค.
- ๊ทธ๋ผ ์ด์ click ํ ์ฃผ์ cell ์ค ๊ฐ์ด 0์ธ cell๋ง ์ด๋ฆฌ๋๋ก ํด๋ณด์.
- ๊ฐ์ด 0์ธ cell์ ์์น๋ง ์ ์ฅํ๋ ๋ฐฐ์ด์ ๋ง๋ค์ด push ํ๋ค.
- clickํ cell ์ฃผ๋ณ์ 0์ด ์๋ค๋ฉด,๋ ๊ฐ์ด 0์ธ cell ์ฃผ๋ณ์ ๋ 0์ด ์๋์ง ์ฐพ์ ๋ฐฐ์ด์ pushํ๋ค.
- ๊ฐ์ด 0์ธ cell์ ์์น๊ฐ ๋ด๊ธด ๋ฐฐ์ด์ด ๋น ๋ฐฐ์ด์ด ๋ ๋๊น์ง ๋ชจ๋ ํด๋น cell์ ์ฐพ์ ํ์ํ๊ณ 0์ผ๋ cell์ ์ฌ๋ ์์ ์ ํ๋ค.( ๋๋ 6, 7, 8๋ฒ์ ์ํด ์ฌ๊ทํจ์๋ฅผ ์ฌ์ฉํ๋ค. )
- 0์ ๋ณด์ด์ง ์๊ฒ ํ๋ค.
- 1 (์ง๋ขฐ) ๋์ ์ง๋ขฐ ๋ชจ์์ ์ด๋ชจ์ง๋ฅผ ๋ฃ์ด์ค๋ค
- cell ์ฐํด๋ฆญ์ ๊น๋ฐ์ ๊ฝ๋๋ค. (๋์์ ํด๋ฆญ์ ๋ง๋๋ค. ๋ค์ ์ฐํด๋ฆญ์ ๊น๋ฐ์ด ํด์ ๋๋ค.)
- ์ด ์ง๋ขฐ ๊ฐฏ์๋ฅผ ๋ณด์ฌ์ฃผ๋ UI์์๋ฅผ ์ถ๊ฐํ๊ณ ๊น๋ฐ์ด ๊ฝํ๋, ํด์ ๋ ๋๋ง๋ค ๊ฐฏ์๋ฅผ ๊ณ์ฐํด์ค๋ค.
- ๊ฐ์ด 1์ธ (์ง๋ขฐ)๋ฅผ ๋๋ฅด๋ฉด ๋ชจ๋ ์ง๋ขฐ๊ฐ ๋ค ๋ณด์ด๋๋ก ํ๊ณ ๊ฒ์์ด ์ข ๋ฃ๋๋ค.
- reset๋ฒํผ์ ๋ง๋ค์ด ๋๋ฅด๋ฉด ๊ฒ์ ๋ณด๋๊ฐ ์ด๊ธฐํ๋๋ค. cell์ ๋ชจ๋ ๊ฐ, ์ง๋ขฐ์ ์์น๋ ์ฌ์ค์ ๋๋ค.
- ํ์ด๋จธ UI์์ ์ถ๊ฐ ํ ๊ฒ์์ด ์์๋๋ฉด( cell์ ์ฒ์ ํด๋ฆญํ์ ๋ ) ํ์ด๋จธ๊ฐ ์์๋๋ค. ( useEffect์ setTimeout์ ์ฌ์ฉํ๋ค. )
- ๊ฒ์์์ ์ง๊ฑฐ๋, ๊ฒ์์์ ์ด๊ธฐ๋ฉด ํ์ด๋จธ๋ฅผ ๋ฉ์ถ๋ค.
ํ๋ก์ ํธ๋ฅผ ํ๋ฉฐ ๊ณต์ ํ๊ณ ์ถ์ ์์ธํ ๋ด์ฉ์ ์ถํ ์ ๋ก๋ ์์ ์ด๋ค.
git link
https://github.com/min9120/minesweeper-game
GitHub - min9120/minesweeper-game: ์ง๋ขฐ์ฐพ๊ธฐ ๊ฒ์์ ๋๋ค ๐ฃ
์ง๋ขฐ์ฐพ๊ธฐ ๊ฒ์์ ๋๋ค ๐ฃ. Contribute to min9120/minesweeper-game development by creating an account on GitHub.
github.com
์ฐธ๊ณ ํ ๊ฒ์ link
https://minesweeperonline.com/
Minesweeper Online - Play Free Online Minesweeper
Free Online Minesweeper in JavaScript. Play the classic game in Beginner, Intermediate, and Expert modes.
minesweeperonline.com