「 ラーベン食べ郎は 設計書を読んで分かる頭をしてないから、設計書を書かないのよ」
「 👆 5七の歩を突いてしまって、6六の角に 4八の玉が刺されるのが 被空き王手 な」
「 👆 利きボードというのは、 将棋盤のような 81マスに、駒ではなく 整数 を置いていると思ってくれだぜ」
「 👆 きふわらべは 将棋盤の他に、 将棋盤のサイズの 利きボードを 29枚 持っていると思ってくれだぜ」
「 利きボードにやってほしいのは、王手がかかってるかどうかの判定なのよね」
「 これだけあれば、被王手のチェックはできるんじゃないか?」
「 👆 空き王手 に関係する可能性のある駒の位置も 捕捉しているぜ」
「 そのデータを持っているんなら、空き王手のチェックは できてそうなんだけどなあ」
「 👆 利きボード・システムと 将棋盤システム がケンカしてるから ちょっと待ってろだぜ」
「 利きボード・システムと、将棋盤システムの上に brain_system
でも置けだぜ」
「 👆 じゃあ Brain
に 利きボード・システムと 将棋盤システム を操作させようぜ」
「 まず 空き王手を食らいやすい 相手の角の位置を取得して、あれば 自玉の位置を取得して、
利きボードのそのマスでの数を照合しましょう」
「 👆 関係があるレイヤーは 1,2,3,4,5,6,11,12,13,14,15,16番か」
「 利きが減ったときと、利きが増えたときは 別のボードに入れてあるんだぜ。
Do が悪いのか、 Undo が悪いのか調べたいからな」
「 👆 配列のインデックスを調べるぜ。先手玉の位置は PCLOC_K1 に入ってそうだな」
「 Promoted Lance みたいで ややこしいだろ」
「 将棋盤システムと 利き盤システムが ケンカしなくなったな」
「 👆 先手が歩を取って100点は分かるが、
後手が歩を取って200点は おかしいだろ」
「 手番から見た評価値であってほしいぜ。
だから 先手が歩を取ったら ー100点 であるべきだぜ」
「 じゃあ 100点を足してから、その評価値の正負を反転しろだぜ」
「 👆 指し手の一覧は movelist
コマンドで取得できるが、
評価値がいくつだと思ってるのか 出してみたいぜ」
「 今のあんたの作りだと 探索しないと 評価値が出ないのよ」
「 探索ではなく DoMove
で駒割り評価値は付くんで、それだけでも調べるか」
「 👆 Undo
で 900 を引いたあと 正負を反対したんだな。
じゃあ 900 は足すべきだったのかだぜ?」
「 駒を取ったら 相手の手番になってるので 評価値が下がってるって、分かりづら!」
「 探索中の値は ひっくり返ってると考えて、マイナスにして返したろ」
position ~
go ~
do 7g7f
do 3c3d
「 👆 自作コマンドでは 局面を作り直さず、使い回すんだぜ。
ここで 差異 が出てきて 正しいデバッグにならないぜ」
「 ちゃんとやるなら position
コマンドを打ち直すことね」
「 undo
をしたあとにも auto pos
を打ち込めよ」
Crieitは個人で開発中です。
興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!