メインの機能が完成したのが 2025 年 2 月だったのですが、その後なかなか解説ブログが書けなかったです。
まとめ
詰将棋を Web 上で解くサービスを開始しました。
ページ: 詰将棋 Web ソルバー
リポジトリー: GitHub - koba-e964/tsumeshogi-web-solver: 詰将棋 Web ソルバー

技術スタック
- フロントエンドは TypeScript + WASM (詰将棋ソルバー) です。WASM 部分は Rust で書きました。
- 将棋盤は https://sugyan.com/shogi-player-webcomponents/ を使用しました。
- 詰将棋ソルバーは GitHub - rust-shogi-crates/shogi_mate_solver を使っています。また基幹ライブラリーとして GitHub - rust-shogi-crates/shogi_core: Defines fundamental data types and functions を使いました。どちらも私が開発したものです (宣伝)。
- バックエンドは存在しません。
- 強いて挙げるとすれば、CORS 回避用のプロクシーサーバーとして https://codetabs.com/ および https://corsproxy.io/ を使いました。これらは Web 上のコンテンツを取得するためだけに使用しています。
新規性
- 詰将棋を Web から取得
- 例えば 2026年1月9日の詰将棋(5手詰)|詰将棋・次の一手|日本将棋連盟 などの URL を入力して
Set SFEN/URLを押すと、そのページの盤面に自動で調整する機能があります。- CORS の回避が面倒でした。CORS proxy は時間が経つと使えなくなるものもあったりするようなので、使えなくなったことの検出も CI でやりました。CI は毎日走るように設定していますが、GitHub の CI は 2 ヶ月間くらい repo に触らないと無効化されてしまうので、2 ヶ月ごとに触る必要があり面倒です。
- 例えば 2026年1月9日の詰将棋(5手詰)|詰将棋・次の一手|日本将棋連盟 などの URL を入力して
- 分岐
- 既存の詰将棋ソルバーはどれも単一手順しか表示しないものでした。今回作成した詰将棋ソルバーではそこを改善し、分岐手順を全て表示するようにしました。
- 個人的に「詰将棋は分岐手順まで網羅して初めて解けた扱いになる」という信条があります。今回の機能実装はその信条と合致します。
- 詰将棋の分岐手順の方を知りたいことがありましたが、既存の詰将棋ソルバーではそこが対応できていませんでした。
- 既存の詰将棋ソルバーはどれも単一手順しか表示しないものでした。今回作成した詰将棋ソルバーではそこを改善し、分岐手順を全て表示するようにしました。