プロジェクト構成
Pythonパッケージはsrc/shogiarena/にあります。
エンジン操作やトーナメントの入口となるモジュールと、機能ごとの実装に分かれています。
Pythonパッケージ
src/shogiarena/
├── cli.py
├── composition.py
├── engine.py
├── tournament.py
└── _core/
├── contexts/
├── platform/
├── interfaces/
└── shared/kernel/
| モジュール | 役割 |
|---|---|
| engine.py | USIエンジンの起動、探索、解析 |
| tournament.py | トーナメントの設定と実行 |
| cli.py | コマンドラインの入口 |
| composition.py | 実行に必要なサービスの組み立て |
機能ごとの実装
| ディレクトリ | 内容 |
|---|---|
| contexts | 対局、トーナメント、SPSAなどの処理 |
| platform | DB、ファイル、エンジンプロセス、ネットワークの操作 |
| interfaces | CLI、ダッシュボード、設定の読み込み |
| shared/kernel | 統計計算や持ち時間などの共通処理 |
contextsでは、計算やルールをdomain、処理の流れをapplication、外部への接続口をports、その実装をadaptersに置いています。
サービスを組み合わせる処理はcomposition rootにあります。
その他のディレクトリ
- examples/configs:用途別の設定例
- tests:Pythonのテスト
- ダッシュボードのフロントエンド:画面とフロントエンドのテスト
- docs/book:ドキュメントの原稿とテーマ