Skip to content

A simple and powerful mate solver for Shogi.

License

Notifications You must be signed in to change notification settings

komori-n/KomoringHeights

Repository files navigation

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