이 글의 목적

오델로 AI에 쓴 소스 코드를 공개합니다. 파일을 펼칠 때만 코드를 불러옵니다.

사용한 모델

  • Gemma 4 E4B(mlx-community/gemma-4-e4b-it-4bit): VLM 서버의 기본 모델입니다. 지금은 로드에 실패해 쓰이지 않습니다.
  • mlx-vlm: Apple Silicon에서 모델을 돌립니다.
  • 로컬 AI: 학습한 모델이 아닙니다. 소스는 알파·베타 탐색, 배포된 웹은 한 수 가중치 AI입니다.
  • 학습한 모델은 아직 없습니다.

폴더 구성

  • src: Qt6 C++ 앱. 규칙 엔진(othello_board), 탐색 AI(aiplayer), VLM 클라이언트(tcpvlmclient)
  • vlm_server: OT88 TCP 서버, 규칙, Gemma 4 내려받기
  • othello-web: Next.js 웹 대국. 규칙 엔진(board.ts), 탐색 AI(ai.ts), 대국 저장(db.ts), VLM 중계(api/vlm/move, ot88Client.ts)

서버 배포 설정, 감시·자동화 스크립트, 대국 데이터와 로그는 공개 범위에서 제외했습니다. 광고와 다른 게임 목록 같은 웹 운영 코드, 설정 파일도 빼서 일부 import는 공개하지 않은 파일을 가리킵니다.

전체 소스

37개 파일 · 5,381줄 — 폴더를 펼친 뒤 파일을 누르면 코드를 불러옵니다.

프로젝트 루트1개 파일
CMakeLists.txttext · 30줄 · 677B

코드를 불러오는 중입니다…

othello-web/19개 파일
othello-web/app/api/game/[code]/route.tstypescript · 56줄 · 2KB

코드를 불러오는 중입니다…

othello-web/app/api/game/route.tstypescript · 23줄 · 801B

코드를 불러오는 중입니다…

othello-web/app/api/vlm/move/route.tstypescript · 55줄 · 1KB

코드를 불러오는 중입니다…

othello-web/app/globals.csscss · 48줄 · 864B

코드를 불러오는 중입니다…

othello-web/app/layout.tsxtsx · 33줄 · 954B

코드를 불러오는 중입니다…

othello-web/app/page.tsxtsx · 71줄 · 2KB

코드를 불러오는 중입니다…

othello-web/app/play/page.tsxtsx · 689줄 · 20KB

코드를 불러오는 중입니다…

othello-web/app/play/play.module.csscss · 209줄 · 3KB

코드를 불러오는 중입니다…

othello-web/components/OthelloBoard.module.csscss · 111줄 · 2KB

코드를 불러오는 중입니다…

othello-web/components/OthelloBoard.tsxtsx · 85줄 · 3KB

코드를 불러오는 중입니다…

othello-web/lib/ai.tstypescript · 145줄 · 4KB

코드를 불러오는 중입니다…

othello-web/lib/board.tstypescript · 209줄 · 5KB

코드를 불러오는 중입니다…

othello-web/lib/db.tstypescript · 190줄 · 6KB

코드를 불러오는 중입니다…

othello-web/lib/gameTypes.tstypescript · 42줄 · 798B

코드를 불러오는 중입니다…

othello-web/lib/guest.tstypescript · 43줄 · 1KB

코드를 불러오는 중입니다…

othello-web/lib/ot88Client.tstypescript · 181줄 · 5KB

코드를 불러오는 중입니다…

othello-web/lib/renderBoardPng.tstypescript · 106줄 · 3KB

코드를 불러오는 중입니다…

othello-web/lib/vlmClient.tstypescript · 103줄 · 3KB

코드를 불러오는 중입니다…

othello-web/package.jsonjson · 22줄 · 489B

코드를 불러오는 중입니다…

src/11개 파일
src/aiplayer.cppc++ · 167줄 · 5KB

코드를 불러오는 중입니다…

src/aiplayer.hc++ · 17줄 · 334B

코드를 불러오는 중입니다…

src/boardwidget.cppc++ · 205줄 · 7KB

코드를 불러오는 중입니다…

src/boardwidget.hc++ · 48줄 · 1KB

코드를 불러오는 중입니다…

src/main.cppc++ · 26줄 · 784B

코드를 불러오는 중입니다…

src/mainwindow.cppc++ · 785줄 · 27KB

코드를 불러오는 중입니다…

src/mainwindow.hc++ · 110줄 · 3KB

코드를 불러오는 중입니다…

src/othello_board.cppc++ · 211줄 · 5KB

코드를 불러오는 중입니다…

src/othello_board.hc++ · 99줄 · 3KB

코드를 불러오는 중입니다…

src/tcpvlmclient.cppc++ · 469줄 · 15KB

코드를 불러오는 중입니다…

src/tcpvlmclient.hc++ · 73줄 · 2KB

코드를 불러오는 중입니다…

vlm_server/6개 파일
vlm_server/__init__.pypython · 3줄 · 69B

코드를 불러오는 중입니다…

vlm_server/__main__.pypython · 92줄 · 3KB

코드를 불러오는 중입니다…

vlm_server/download_gemma4.pypython · 68줄 · 2KB

코드를 불러오는 중입니다…

vlm_server/othello_rules.pypython · 92줄 · 3KB

코드를 불러오는 중입니다…

vlm_server/requirements.txttext · 7줄 · 195B

코드를 불러오는 중입니다…

vlm_server/server.pypython · 458줄 · 15KB

코드를 불러오는 중입니다…