2021-06-25に更新

きふわらべの将棋の駒の利きボードの設計(^~^)

へっぷん(^~^) 公開下書き

20210124shogi2a2b1.png
「 つら……」

kifuwarabe-futsu.png
「 何の進展もないじゃないか。設計をまとめろだぜ」

ohkina-hiyoko-futsu.png
「 ラーベン食べ郎は 設計書を読んで分かる頭をしてないから、設計書を書かないのよ」

ramen-tabero-futsu2.png
「 マンガになってないから分かんないよな」

20210625shogi17.png

ramen-tabero-futsu2.png
「 👆 5七の歩を突いてしまって、6六の角に 4八の玉が刺されるのが 被空き王手 な」

20210625shogi12.png

ramen-tabero-futsu2.png
「 👆 利きボードというのは、 将棋盤のような 81マスに、駒ではなく 整数 を置いていると思ってくれだぜ」

20210625shogi11.png

ramen-tabero-futsu2.png
「 👆 きふわらべは 将棋盤の他に、 将棋盤のサイズの 利きボードを 29枚 持っていると思ってくれだぜ」

kifuwarabe-futsu.png
「 多……」

20210625shogi13.png

ramen-tabero-futsu2.png
「 👆 利きボードを表示すると こんな感じだぜ」

ohkina-hiyoko-futsu.png
「 利きボードにやってほしいのは、王手がかかってるかどうかの判定なのよね」

kifuwarabe-futsu.png
「 玉は どこにいるんだぜ?」

20210625shogi14.png

ramen-tabero-futsu2.png
「 👆 将棋盤も 表示できるけど」

kifuwarabe-futsu.png
「 これだけあれば、被王手のチェックはできるんじゃないか?」

20210625shogi15.png

ramen-tabero-futsu2.png
「 👆 空き王手 に関係する可能性のある駒の位置も 捕捉しているぜ」

ohkina-hiyoko-futsu.png
「 そのデータを持っているんなら、空き王手のチェックは できてそうなんだけどなあ」

20210625shogi16a1.png

ramen-tabero-futsu2.png
「 👆 利きボード・システムと 将棋盤システム がケンカしてるから ちょっと待ってろだぜ」

kifuwarabe-futsu.png
「 利きボード・システムと、将棋盤システムの上に brain_system でも置けだぜ」

20210625shogi18.png

ramen-tabero-futsu2.png
「 👆 じゃあ Brain に 利きボード・システムと 将棋盤システム を操作させようぜ」

ohkina-hiyoko-futsu.png
「 まず 空き王手を食らいやすい 相手の角の位置を取得して、あれば 自玉の位置を取得して、
利きボードのそのマスでの数を照合しましょう」

20210625shogi18a1.png

ramen-tabero-futsu2.png
「 👆 雰囲気としては こんな感じか。やってみるぜ」

20210625shogi19a1.png

ramen-tabero-futsu2.png
「 👆 関係があるレイヤーは 1,2,3,4,5,6,11,12,13,14,15,16番か」

kifuwarabe-futsu.png
「 負とか 正とか 何なんだぜ?」

ramen-tabero-futsu2.png
「 利きが減ったときと、利きが増えたときは 別のボードに入れてあるんだぜ。
Do が悪いのか、 Undo が悪いのか調べたいからな」

kifuwarabe-futsu.png
「 重そう」

20210625shogi20.png

ramen-tabero-futsu2.png
「 👆 配列のインデックスを調べるぜ。先手玉の位置は PCLOC_K1 に入ってそうだな」

ohkina-hiyoko-futsu.png
「 何その パソコンに鍵かけそうな名前」

ramen-tabero-futsu2.png
「 Piece Location だぜ」

kifuwarabe-futsu.png
「 PL でいいのでは」

ramen-tabero-futsu2.png
「 Promoted Lance みたいで ややこしいだろ」

20210625shogi21.png

ramen-tabero-futsu2.png
「 👆 雰囲気で書くコーディング」

kifuwarabe-futsu.png
「 将棋盤システムと 利き盤システムが ケンカしなくなったな」

ohkina-hiyoko-futsu.png
「 Mediatorパターンってやつかしら?」

評価値がケンカしてるなあ

20210625shogi23a1.png

ramen-tabero-futsu2.png
「 👆 先手が歩を取って100点は分かるが、
後手が歩を取って200点は おかしいだろ」

kifuwarabe-futsu.png
「 手番から見た評価値であってほしいぜ。
だから 先手が歩を取ったら ー100点 であるべきだぜ」

20210625shogi24a1.png

ramen-tabero-futsu2.png
「 👆 一瞬うまく行ったと思ったらダメだった」

ohkina-hiyoko-futsu.png
「 探索部では、手番から見た評価値にしないといけないのよ」

kifuwarabe-futsu.png
「 じゃあ 100点を足してから、その評価値の正負を反転しろだぜ」

20210625shogi25a1.png

ramen-tabero-futsu2.png
「 👆 よし、それでいけだぜ」

kifuwarabe-futsu.png
「 角換わりを覚えたか。成長したな」

指し手の一覧

20210625shogi26.png

ramen-tabero-futsu2.png
「 👆 指し手の一覧は movelist コマンドで取得できるが、
評価値がいくつだと思ってるのか 出してみたいぜ」

ohkina-hiyoko-futsu.png
「 今のあんたの作りだと 探索しないと 評価値が出ないのよ」

kifuwarabe-futsu.png
「 探索部が 1手指定して実行する作りではないからな」

ramen-tabero-futsu2.png
「 探索ではなく DoMove で駒割り評価値は付くんで、それだけでも調べるか」

20210625shogi27.png

ramen-tabero-futsu2.png
「 👆 やっぱ Undo 実装できてないんじゃねーの?」

20210625shogi28.png

ramen-tabero-futsu2.png
「 👆 Undo で 900 を引いたあと 正負を反対したんだな。
じゃあ 900 は足すべきだったのかだぜ?」

20210625shogi29.png

ramen-tabero-futsu2.png
「 👆 よし」

ohkina-hiyoko-futsu.png
「 駒を取ったら 相手の手番になってるので 評価値が下がってるって、分かりづら!」

評価の高い手を指すか?

20210625shogi30.png

kifuwarabe-futsu.png
「 👆 4六歩」

ramen-tabero-futsu2.png
「 なんで 2四飛 じゃないんだぜ?」

kifuwarabe-futsu.png
「 4六歩は マイナスだろ」

20210625shogi31a1.png

ramen-tabero-futsu2.png
「 探索中の値は ひっくり返ってると考えて、マイナスにして返したろ」

USI と 自作コマンドの違い

position ~
go ~

ramen-tabero-futsu2.png
「 👆 USI では 局面を毎回作り直すんだぜ」

do 7g7f
do 3c3d

ramen-tabero-futsu2.png
「 👆 自作コマンドでは 局面を作り直さず、使い回すんだぜ。
ここで 差異 が出てきて 正しいデバッグにならないぜ」

ohkina-hiyoko-futsu.png
「 ちゃんとやるなら position コマンドを打ち直すことね」

ramen-tabero-futsu2.png
「 auto pos みたいなコマンド作ろうかな……」

kifuwarabe-futsu.png
「 undo をしたあとにも auto pos を打ち込めよ」

ohkina-hiyoko-futsu.png
「 do や undo の機能の中に auto pos を組み込めばいいのよ」

ramen-tabero-futsu2.png
「 そりゃそうか」

何度でもクリック!→

むずでょ

光速のアカウント凍結されちゃったんで……。ゲームプログラムを独習中なんだぜ☆電王戦IIに出た棋士もコンピューターもみんな好きだぜ☆▲(パソコン将棋)WCSC29一次予選36位、SDT5予選42位▲(パソコン囲碁)AI竜星戦予選16位

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

むずでょ の最近の記事