๋ค์จ ์ฌ์ด๋ฒํํฌ ์คํ์ผ์ 2D ์ธํ๋ฝ๊ธฐ ๊ฒ์
- ๐ ๋ค์จ ์ฌ์ด๋ฒํํฌ ๋์์ธ - ํ๋ คํ ๋ค์จ ์์๊ณผ ๊ธ๋ก์ฐ ํจ๊ณผ
- ๐ฏ ์ ๋ฐํ ์ถฉ๋ ๊ฐ์ง - ์ํ ์ถฉ๋ ๊ธฐ๋ฐ ์ ํํ ์ธํ ์ก๊ธฐ
- ๐ฑ ๋ฐ์ํ ๋์์ธ - ๋ชจ๋ฐ์ผ/๋ฐ์คํฌํฑ ๋ชจ๋ ์ง์
- ๐ฎ ์ง๊ด์ ์ธ ์กฐ์ - ํฐ์น/ํด๋ฆญ & ํค๋ณด๋ ๋ชจ๋ ์ง์
- โ Playwright ํ ์คํธ - ์๋ํ๋ E2E ํ ์คํธ ํฌํจ
# ์ ์ฅ์ ํด๋ก
git clone https://github.com/ComBba/claw-machine-game.git
cd claw-machine-game
# ์์กด์ฑ ์ค์น (ํ
์คํธ์ฉ)
npm install# ๋ธ๋ผ์ฐ์ ์์ ์ง์ ์ด๊ธฐ
# index.html ํ์ผ์ ๋ธ๋ผ์ฐ์ ์์ ์ง์ ์ฌ์ธ์.
# ๋๋ ๋ก์ปฌ ์๋ฒ ์ฌ์ฉ
npx serve .| ์ ๋ ฅ | ๋์ |
|---|---|
| โ / โ | ์ง๊ฒ ์ผ์ชฝ ์ด๋ |
| โถ / โ | ์ง๊ฒ ์ค๋ฅธ์ชฝ ์ด๋ |
| GRAB ๋ฒํผ / Space | ์ง๊ฒ ๋ด๋ฆฌ๊ธฐ |
# ํค๋๋ฆฌ์ค ํ
์คํธ
npm test
# UI ๋ชจ๋๋ก ํ
์คํธ (๋ธ๋ผ์ฐ์ ์์ ํ์ธ)
npm run test:ui
# ๋ธ๋ผ์ฐ์ ํ์ํ๋ฉฐ ํ
์คํธ
npm run test:headed- ์ธํ 3๊ฐ ์ด์ ์ก๊ธฐ ์ฑ๊ณต ๊ฒ์ฆ
- ์ง๊ฒ ํ๊ฐ/์์น ๋์ ํ์ธ
- ์ถฉ๋ ๊ฐ์ง ์ ํ๋ ํ ์คํธ
- Frontend: Vanilla HTML5, CSS3, JavaScript (ES6+)
- Testing: Playwright
- Animation: requestAnimationFrame
- Collision: ์ํ ์ถฉ๋ ๊ฐ์ง
claw-machine-game/
โโโ index.html # ๊ฒ์ ๋ฉ์ธ ํ์ผ (HTML + CSS + JS)
โโโ claw-machine.spec.ts # Playwright E2E ํ
์คํธ
โโโ playwright.config.ts # Playwright ์ค์
โโโ specs/
โ โโโ game-mechanics.md # ๊ฒ์ ๋ฉ์นด๋ ๋ช
์ธ
โโโ screenshots/
โ โโโ claw-machine-fixed.png # ๊ฒ์ ์คํฌ๋ฆฐ์ท
โโโ IMPLEMENTATION_PLAN.md # ๊ตฌํ ๊ณํ ๋ฐ ์๋ฃ ์ํ
- ๋๊ธฐ: ์ง๊ฒ๊ฐ ์๋จ์์ ์ข์ฐ ์ด๋ ๋๊ธฐ
- ํ๊ฐ: GRAB ์ ์ง๊ฒ ์ ์ฒด๊ฐ ์๋๋ก ๋ด๋ ค๊ฐ
- ์ก๊ธฐ: ๋ฐ๋ฅ ๋๋ฌ ์ ์ธํ ์ถฉ๋ ๊ฐ์ง โ ์ก๊ธฐ
- ์์น: ์ก์ ์ธํ๊ณผ ํจ๊ป ์ง๊ฒ ์ค์ฌ์ ๊ณ ์ ๋์ด ์ฌ๋ผ์ด
- ์ด๋: ๋ฐฐ์ถ๊ตฌ๋ก ์ด๋
- ๋ฐฐ์ถ: ์ธํ ๋จ์ด๋จ๋ฆฌ๊ณ ์ ์ ํ๋! ๐
์ด ๊ฒ์์ Ralph Loop (AI ๊ธฐ๋ฐ ๊ฐ๋ฐ ๋ฃจํ)๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ๋์์ต๋๋ค:
- ๋ช
์ธ ์์ฑ (
specs/game-mechanics.md) - ๊ตฌํ ๊ณํ ์๋ฆฝ (
IMPLEMENTATION_PLAN.md) - AI ์์ด์ ํธ๊ฐ ์ฝ๋ ์์ฑ ๋ฐ ๋ฒ๊ทธ ์์
- Playwright ํ ์คํธ๋ก ๊ฒ์ฆ
- ๋ฐ๋ณตํ์ฌ ์์ฑ
- โ ์ง๊ฒ๊ฐ ์ค๋ง ๋ด๋ ค๊ฐ๊ณ ๋ชธ์ฒด๋ ์ ๋ด๋ ค๊ฐ๋ ๋ฒ๊ทธ
- โ ์ธํ์ด ์ฌ๋ผ์ฌ ๋ ํ์ด์ง๋ ๋ฒ๊ทธ
- โ ์ถฉ๋ ๊ฐ์ง ๋ถ์์ ์ด์
MIT License
Made with ๐ by @ComBba & AI Agents ๐ค
