「部分ハッシュで序盤の囲いを実現」にとりかかる
金、銀、王だけの部分ハッシュをmove/undoで差分生成しておいて、
プロの棋譜から1手づつスキャンしながら、部分ハッシュを記録。
main 1 | sort | uniq -c | sort > ranking.txt
と重複する部分ハッシュの重複数でランキングを作ってやると
囲いの部分ハッシュが現れるはず。
とりあえず、実験で、プロの棋譜50局でテスト収集。
49 33ca2aa5c81f66c6 42 1b7d84a4b4bcb922 31 a51495cca9e8ef04 23 dae0fb7b4b149114 23 e19ae2cb6ada6e16 22 521a6ca2b7b0fbc0 20 9c42519c41b4b7a0 14 36bdd72d3d9610b0 14 4c6bdba435bf6e46 12 a8f4959b9253eba6 12 b9b35f3fa6f76aa4 11 20079d1495724620 9 1f469a46802e1704 9 2bc7180a33fff696 9 3c8c439a71821090 9 bb39222acf3ecb40 9 fd52141fe88ca2f2 8 58e6a8b7be32a084 8 b5b91cf7fc0cb014 8 bf5083cca9f38d26 8 d98e3ec9e7f076d2 8 de029af5578c5274
できたのはいいけど、それぞれどんな形なんでしょうね(^^;
ハッシュの初期値は乱数で作ったモノを保存しておいて、毎回同じのを使ってるので、
毎回同じ値になるので、
とりあえず
49 33ca2aa5c81f66c6
が何なのか?を調べてみましょう
っていうか、初期局面でした(・∀・;)
銀、金、王の部分ハッシュは、先手・後手それぞれ別にもっておかないとダメですね。
一緒に持ってました。失敗しました。
集計やりなおします