/KomoringHeights

A simple and powerful mate solver for Shogi.

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Make CI (MSYS2 for Windows) Make CI (MinGW for Windows) Make CI (for Ubuntu Linux) Make CI (for Mac) NDK CI (for Android)

KomoringHeights

English

KomoringHeights は、df-pn+アルゴリズムを用いたやねうら王ベースの詰将棋エンジンです。 局面の優劣関係、厳密な千日手検出、局面の合流検出と二重カウント回避など、詰将棋特有の探索技法が実装されており、 詰み/不詰の判定を高速に行うことができます。

KomoringHeights 本体は source/engine/user-engine 以下に格納されています。 それ以外はほぼすべてやねうら王由来のファイルとなっています。

How to use

Releases からお使いのOSに合ったバイナリをダウンロードしてください。 KomoringHeightsを動かすには、将棋所ShogiGUIElectron将棋ShogiDroidなどのUSIプロトコルに対応したGUIを利用してください。

USIプロトコルの検討機能(go ...)および詰将棋解答機能(go mate ...)の両方に対応しています。 使用するGUIソフトの仕様に応じて使い分けてください。

詳細なエンジンオプションについては EngineOptions を参照してください。

How to Build

ソースからビルドするには以下のコマンドを使用します。

git clone https://github.com/komori-n/KomoringHeights.git
cd KomoringHeights/source
make normal TARGET_CPU=AVX2 COMPILER=clang++

お使いのCPUに合わせて TARGET_CPU= の部分を書き換えてください。 TARGET_CPU に指定可能な文字列の一覧は source/Makefile を参照してください。

また、ビルドには C++17 対応のコンパイラが必要になります。 GCC 11、Clang 14 より新しいコンパイラのみ動作確認をしています。 これらより古い環境ではサポート対象外となるのでご注意ください。

References

詰将棋エンジンを作る上で参考にした文献等についてはReferencesを参照してください。

開発者向けドキュメント

Doxygenから自動生成したドキュメントは以下を参照してください。

Contributing

バグの報告や機能要望などはIssueへお願いします。 Pull Requestも大歓迎です。Pull Requestを作成する場合、事前に .pre-commit-config.yaml の pre-commit チェックが通ることを確認してください。

ライセンス

Licensed under GPLv3.

KomoringHeights実装本体は source/engine/user-engine に格納されています。 それ以外のファイルについては やねうら王 のライセンスを併せてご確認ください。

KomoringHeightsを使用してコンピュータ将棋大会等へ参加する場合、改変の有無にかかわらず事前に許可を取る必要はありません。 もし使用していただける場合、アピール文書等で言及していただけると嬉しいです。