Next.js App Router 기반의 오목 게임입니다. 로컬 2인 모드와 AI 대전 모드를 지원합니다.
pnpm installpnpm dev브라우저에서 http://localhost:3000을 열면 됩니다.
pnpm dev
pnpm build
pnpm start
pnpm lint
pnpm typecheck
pnpm test
pnpm rl:setup
pnpm rl:export
pnpm rl:test
pnpm rl:self-play
pnpm rl:train
pnpm rl:evaluate
pnpm format
pnpm format:checkPython/PyTorch 기반 학습 코드는 training/에 있습니다. 먼저 가상환경과 의존성을 설치합니다.
pnpm rl:setup짧은 smoke run 예시는 다음과 같습니다.
pnpm run rl:self-play --workers 2 --games 4 --policy random --max-moves 30 --out training/runs/self_play.npz
pnpm run rl:train --workers 2 --games 4 --policy random --epochs 1 --max-moves 30 --checkpoint training/runs/checkpoint.pt
pnpm run rl:export --checkpoint training/runs/checkpoint.pt --out models/omok-policy.onnx
pnpm run rl:evaluate --checkpoint training/runs/checkpoint.pt --games 2 --max-moves 30앱에서 강화학습 AI를 선택하면 서버가 models/omok-policy.onnx를 사용합니다.
다른 모델을 쓰려면 OMOK_RL_MODEL_PATH 환경변수로 경로를 지정합니다.
- 패키지 매니저는
pnpm만 사용합니다. - 코드 포맷팅은
Prettier, 정적 검사는ESLint로 분리합니다. - 게임 규칙과 AI 계산은 순수 함수로 유지해서 클라이언트와 API가 같은 로직을 공유합니다.
이 프로젝트에 기여하고 싶다면 먼저 이슈를 등록해주세요. 코드 변경 사항이 있을 경우, 풀 리퀘스트를 열어주시기 바랍니다.
이 프로젝트는 MIT 라이센스를 따르고 있습니다. 자세한 내용은 LICENSE 파일을 확인하세요.
