Skip to content

catfoot-dev/omok

Repository files navigation

오목

Next.js App Router 기반의 오목 게임입니다. 로컬 2인 모드와 AI 대전 모드를 지원합니다.

demo screenshot

설치

pnpm install

실행

pnpm 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:check

강화학습 파이프라인

Python/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 파일을 확인하세요.

About

강화학습으로 구현한 오목 AI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors