2014-12-18 20:03
だいたい プログラムのバグは スペルミスとか、ぼけっとしてたとか、
ケアレスミスなんだが、
ケアレスミスが起きるようなデザインがある時点で
開発者として やる気とか、気概のようなもので負けている☆ww
2014-12-18 20:13
このバグ、なんで同じ局面を 何度も追加しているのか、と思って調べてみたんだが、
わたしは局面を区別するのに SFEN形式の棋譜の符号を使っていたんだぜ☆
5a5b というのは、後手の王さまが1つ上がることだぜ☆
どうも、こういう符号が被っているようなんだぜ☆
分からん☆w
確かに2週してる感があるぜ☆ 無駄だぜ☆ww
2014-12-18 20:39
ほんとうは、盤上の駒を動かした局面のうしろに、持ち駒を打った局面が
続くように書いているつもりなんだが、
盤上の駒を動かした局面のうしろに、また 盤上の駒を動かした局面が
並んでいる気がするんだぜ☆
左が盤上の駒の利き、右が持ち駒の打てるところだぜ☆
ダンプすると はっきり分かるんだぜ☆w
初手で 持ち駒に利きがある、と出ているので、バグなんだぜ☆
A HasFlag B を、
B HasFlag A にしてみたぜ☆ 試しに逆にしてみたんだぜ☆
2014-12-18 21:33
持ち駒は、盤上の駒より、ひとてま多くかけないといけないことが 分かったんだぜ☆
というのも、角の場合で説明するぜ☆
「角を置く → 角の利きを計算する」
なんだが、例えば
「角を1一に置く」
「角を1二に置く」
・・・
というように、
わたしのプログラムでは、置ける場所すべてに角を置いたあと 利きを計算しているので、
盤上のほとんどすべてのマスに 利きが利いていた☆w
これでは 王さまも投了するんだぜ☆ww
1つの駒は、1つのマスしかいない、と考えていたので、
「駒別にマスを一覧」にしておけばいいかと思ったんだが、
持ち駒は いろんなマスにいる、と考えることができる☆
「持ち駒をどのマスに置いたときの、マス一覧」がいるんだろうか☆w
次回は スプライト別/マス別/マス複数 のコレクション作成だぜ☆
Dictionary< Sprite, Dictionary< Masu, Masus>>
微速微進、遅々前進だぜ☆
[0回]
PR
http://grayscale.dou-jin.com/Entry/118/【将棋】めざせ世界コンピュータ将棋選手権☆(31) まだまだ、バグ取り☆ww