- Ari-Shogi-Serverは、「ローカルで動く自分専用のミニfloodgate」である。(未完成)
- 開発者が「ローカルで動く自分専用のミニfloodgate」が欲しいと思ったので開発した。
- ちゃんとしたサーバーのプログラムが欲しい人は別のところを当たる事。
- USIプロトコルじゃなくてCSAプロトコルを使う理由: 私(兵頭)のAIはCSAプロトコルには対応しているけどUSIプロトコルには対応していないから
- ファイル・クラス・関数・変数名、出力されるメッセージ、実装方法、設計思想などに関する意見は受け付けておりません。 (不満があるなら自分で作ってください)
- オセロ版もある( https://github.com/YuaHyodo/Ari-Othello-Server )
- CSAプロトコルに関してはここを参照のこと: http://www2.computer-shogi.org/protocol/tcp_ip_server_121.html
- floodgateのリンクはここ: http://wdoor.c.u-tokyo.ac.jp/shogi/floodgate.html
- 実行には、snail_shogi( https://github.com/YuaHyodo/snail_shogi )が必要です。
- インストール方法などはsnail_shogiのリポジトリをご確認ください。
- CSAプロトコルを使って将棋の対局を行う機能
- 複数のプレーヤーがログインしている時にランダムに対局を組む機能
- 棋譜をCSA形式で出力する機能
- ログをとる機能
- プレーヤの情報を保存・管理する機能
- レートをつける機能(深刻なバグがある可能性高)
- プレーヤーの情報を自動で読み取ってHTMLファイルに書き出す機能(以下、サンプル)
- 「ローカルで動く自分専用のミニfloodgate」を作る事で、開発を効率化する。
- なし
- CSAプロトコルの「自分の手番以外で行動しようとすると即反則になる」という規定に関する部分
- ログアウト関連の部分
- その他多数
- main_v1.py: メイン部
- play_game_v1.py: 1ゲームの管理
- Player_class.py: 各プレーヤーの管理を容易にする
- rate_v1.py: レートの計算など
- logger_v1.py: ログを取る
- output_v1.py: HTMLファイルへの出力
- security_v1.py: あってもなくてもあまり変わらない程度のセキュリティ関係のコード
- /Players/Players.json: 全プレーヤーの管理
- /Players/Player/: 各プレーヤーのファイルを保存するディレクトリ
- /games/: 棋譜を保存するディレクトリ
- /log/main_log.txt: メインのログ
- Ari-Shogi-ServerはMITライセンスです
- 詳細はLICENSEファイルをご確認ください。
- 1: floodgateと違って、絶対に勝てないAIとマッチングさせられたり、バグのせいで対局開始に間に合わなかったりする事がない。
- 2: 好きな時に対局を開始できる。好きな時にストップできる。
- 3: 「どの改造がどの程度強さに影響を及ぼしたか?」の計測がしやすくなる。なので開発の方針を決めやすくなる。
- 4: 「長期的に見て自分のAIがどれくらい強くなったか?」も分かりやすくなる。すると、「今月はレートを10上げる」という風に目標が立てれるようになる。
- 6: 強化学習nサイクルでどれくらいレートが上がるかも見やすくなる。
- 7: 自分が「欲しい」と思った機能をつけることができるので、その他いろんな事ができる。