Koki Fushimi
Koki Fushimi
If it were easy to change, I would hope.
#30 と同じところでエラーが出ているので、関係していると思います。
[セマンティック バージョニング](https://semver.org/lang/ja/) に従って、破壊的な変更が入る可能性があることを明示してさえおけば、Kubo さんの管理下にあるならば頻繁に更新が入ってもマネージメントできるかなと考えていました。更に [TSDoc](https://tsdoc.org/) に基づいて、documenting を進めていく必要があると思います。
* 日本将棋連盟 (Japan Shogi Association, JSA) の棋譜記録方式 http://web.archive.org/web/20220102190503/https://www.shogi.or.jp/faq/kihuhyouki.html * 例:`52銀右上成` * 先手を表す記号は `☗` U+2617 を後手を表す記号に `☖` U+2616 を使う。 * 筋・段を表すのに算用数字を使う。 * web サイトの例では全角数字 `1` U+FF11 から `9` U+FF19 * 到達地点に基本的な動かし方で動かせる駒が一意なとき、駒の相対位置、駒の動作、駒の成・不成・打は記入しない。...
[Record](https://github.com/sunfish-shogi/electron-shogi/blob/f3e4c8103b4bb4b4f3d24a9c337b90c2f12c3beb/src/shogi/record.ts#L315 ) では一般の定跡(トポロジカルに非連結なグラフなどを含む)を表現できないので、定跡の型(クラスやインターフェイスなど)を作成する必要がある。 名前は何が良いか?日本語をそのまま使うなら joseki などですが、英語・チェス https://www.chessprogramming.org/Opening_Book や他の将棋ソフトでも使用されているところから、book が良さそう。 必要な機能 * `Record` を `Book` にマージする機能 * `Book` から `Record` を切り出す機能 * ノードからノードへのアーク(有向エッジ)に重みやコメントなどのメタデータを持たせられる機能 * ノードに評価値・コメントなどのメタデータを持たせられる機能 * 通常の双玉平手形に加え、 * 詰将棋用などに、片玉の局面対応 * 駒落ちの局面対応...
Julia で定跡グラフ可視化するときに使っていたグラフ構造のライブラリは Julia の [JuliaGraphs organization](https://juliagraphs.org/) 下の * https://github.com/JuliaGraphs/Graphs.jl (2-Clause BSD): グラフの基本的な操作、メタデータを含まない。 * https://github.com/JuliaGraphs/MetaGraphs.jl (MIT): Graph.js をベースにメタデータを扱う機能を追加する 。 を使っていました。 Python では * https://github.com/networkx/networkx (3-Clause BSD) が有名でしょうか。 Rust では * https://github.com/petgraph/petgraph...
ノード の id としては、 * SFEN 文字列の手数抜き `lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL b -` * 256 bit に可逆圧縮した値 `1c6042ae7e605f553c6046be30274604f8c09d3c6046aefe604f551c6042a459` のどちらかが良いと思います。現状、可逆圧縮する機能を electron-shogi は持っていないので、SFEN 文字列の手数抜きでひとまず実装して良いと考えます。
やねうらおう定跡形式をそのまま TypeScript 化すれば、 ```ts class MoveMetadata {} class MetaMove { public move: string; public metadata: MoveMetadata; } class PositionMetadata {} class MetaPosition { public position: string; public moves: MetaMove[]; public...
やねうらおう定跡形式では ponder は `none` が許されているとはいえ必須事項ですが、定跡のデータ形式としては必須事項でないので、実装するにしてもメタデータに押し付けるのが正解と考えます。
commit 071c86de44f340beea785e5264c111705d6f2bdb で `electron:serve` と `electron:build` の成果物が起動して動くことを macOS で確認しました。