2015-01-25 15:36
後手の歩が 全部ひっくり返ったり、
盤の上ではなく 駒袋の中にしまわれている、という意味を伝える画面表示になっている☆
データが間違っているのか、データと画面表示の連携が取れていないのか、
まだまだ バグ取りだぜ☆
17:27
調べてみたんだが、
わたしのプログラムは、2三の歩は「駒32番」、3三の歩は「駒33番」と番号が付いていて
駒台の上にある歩も、「駒32番」と「駒33番」は区別している☆
しかし、SFENの文字列にすると、駒は「P1」(歩が1個)のように
どの駒だったのか、という情報は失う☆
すると描画プログラムと連携が取れなくなるみたいなんだぜ☆
18:03
棋譜入力欄に「position 9/9/9/9/9/9/9/9/9 b - 1 moves 」と入力して[コマ送り]ボタンを押すと
反応がないんだぜ☆
KifuParserA_StateA1b_SfenLnsgkgsnl( ) 関数で、
「lnsgkgsnl/1r5b1/ppppppppp/9/9/6P2/PPPPPP1PP/1B5R1/LNSGKGSNL w - 1」
といった文字を解析するようにしてあるんだが、
解析したあとの結果を 画面と同期していないんだぜ……☆
「9/9/9/9/9/9/9/9/9 b - 1 moves 」と入れると、「moves 」という文字が残る。
Ui_01MenuB # RefreshSiteiSky_Im( ) には、SFENの駒配置を解析した結果が
引数で渡されるので、棋譜を変更しなければならない☆
が、仕事してない☆
18:34
「position 9/9/9/9/9/9/9/9/9 b - 1 moves 」と入れて、[コマ送り]ボタンを押したところだぜ☆
全部の駒が、盤上にも駒台にもなく、駒袋に入ったんだぜ☆
この動きは 合っている☆
18:38
飛車先の歩を付くと、次のような SFEN になるんだぜ☆
「position lnsgkgsnl/1r5b1/ppppppppp/9/9/7P1/PPPPPPP1P/1B5R1/LNSGKGSNL w - 1 moves 」
出力は合っている☆
18:51
クリアーボタンが壊れていたので修正した☆
駒台に置く、という動きだぜ☆
出力されるSFENは、「position 9/9/9/9/9/9/9/9/9 b K1R1B1G2S2N2L2P9k1r1b1g2s2n2l2p9 1 moves 」
だぜ☆
うむ、合っている☆ww
18:56
調べてみると、初期配置ボタンも データと画面の同期が壊れていたので修正した☆ww
出力されるSFENは「position lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL b - 1 moves 」だぜ☆
うむ、合っているな☆
19:12
駒の「向き」を変えるボタンも データと画面の同期が壊れていたので修正した☆ww
出力されるSFENは「position lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPpPPPP/1B5R1/LNSGKGSNL b - 1 moves 」だぜ☆
これも合っている☆
19:29
[成る]ボタン、[成らない]ボタンも、データと画面表示の同期が壊れていたので、
これは作り直した☆ww 直ったのだろうか☆ww
出力されるSFENは「position lnsgkgsnl/1r5b1/ppppppp+Pp/9/9/9/PPPPPPP1P/1B5R1/LNSGKGSNL w P1 1 moves 」だぜ☆
とりあえず、「+P」と出ているので「成り」には対応できているだろう☆ww
19:46
SFEN文字列を、局面オブジェクトに変換するメソッドは、
StartposImporter # ToSky() なんだが、普段これは使ってなくて、
別のどこかで 変換しているみたいなんだぜ☆
KifuIO_Executer # ExecuteSfen_FromTextSub ( ) と機能が被っている気がするんだぜ☆
1つに統合したい☆ww
StartposImporter クラスは、SFENの初期配置の文字列解析だけを担当している☆
SfenStartposFingerdata クラスは構造体だぜ☆
升の数だけ要素がある配列に、駒文字が入っている☆
また、持ち駒や、無い駒の数のカウントを 記憶しておく☆
20:11
現行の局面オブジェクトなら バグらないのだが、
「SFEN文字列」に変えると、「駒を取ったときの処理」でバグるんだぜ☆
原因や 場所が 絞り込めてきたんじゃないか☆?
20:55
オー ノー☆
将棋盤で棋譜を並べるときと、対コンピューター戦を遊ぶときでは 処理が異なる☆ww
うむむむむ☆ だから いくら調べても見つからなかったんだが、
対コンピューター戦のときにバグは 別の場所が動いているのか☆wwwwww
むっきー☆wwwwwwwwww
[0回]
http://grayscale.dou-jin.com/Entry/132/【将棋】めざせ世界コンピュータ将棋選手権☆(43) 局面データを、オブジェクトから SFEN形式文字列へ変更したいのだが☆