2015-01-26 22:59
うっ☆ うっ☆ うっ☆
ぜんぜん 設計書 書いてないので、自分が忘れている☆ww
vs コンピューター対局モードでは、
将棋エンジンから「8c8d」(*)のように 指し手が送られてくるので、
GUIのタイマーがそれをキャッチしたら[コマ送り]ボタンを押してるだけなんだぜ☆
*8三の駒を、8四に動かす。 初期平手局面から見れば△8四歩。
23:09
コメントを修正したんだぜ☆
/// <棋譜読込用><マウス入力非対応>
///
/// 「棋譜並べモード」と「vsコンピューター対局」でも、これを使いますが、
/// 「棋譜並べモード」では送られてくる SFEN が「position startpos moves 8c8d」とフルであるのに対し、
/// 「vsコンピューター対局」では、送られてくる SFEN が「8c8d」だけです。
///
/// それにより、処理の流れが異なります。
23:41
だいたい、なんで こんなバグになるんだぜ☆? 原因が分かれば直せるはずなんだが☆
32番の歩を取ったのに、39番の歩を駒袋に送りこんでいる……、ということは無い☆
SFEN には、そういう情報はないんだぜ☆
SFEN→局面
変換時、
おそらく、9個の先手の歩、8個の後手の歩は将棋盤上にあって、
歩は1個だけ 持ち駒になっている、という展開の仕方をしたから
こうなっていると思うんだぜ☆
平手初期局面の 18番目の歩は 9三 に置いてある、といった決めうちを
やめる必要があるな☆
持ち駒の歩は、何番目の歩なのか、SFENには情報がない☆
「取った駒は、属性を駒袋に変える」ではなくて、
「駒袋置き場にある駒は、属性を駒袋に変える」
というプログラムに変えることで 解決しそうな気がするんだぜ☆
[0回]
PR
http://grayscale.dou-jin.com/Entry/133/【将棋】めざせ世界コンピュータ将棋選手権☆(44) 自分で作っていて忘れているのだが、棋譜並べモードと、vs COMP対局モードとでは 違うプログラムを作っている☆