忍者ブログ

ぐれーすけーるブログ

ゲームプログラミングを独習中なんだぜ☆

↑同人活動☆w
ホームページ☆
『きふわらべ』のダウンロード
は、ホームページへ飛ぶ↑☆

ぐれーすけーる は、ゲーム86パーセントでお送りするんだぜ☆↑押すと最新記事に飛ぶぜ☆



第25回世界コンピュータ将棋選手権1日目に
初出場した『きふわらべ』の記事はこちら↑☆
↑東方二次創作音楽
CD78サークル分買った
No image
(↑終了)
秋葉原裏通りの潰れそうなオリジナル同人
ソフト店『さんげっと』の記事はこちら☆

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【将棋】めざせ世界コンピュータ将棋選手権☆(49) 昨日は順位戦の解説を聞いてきたので……うっ眠☆ww そしてニコ生配信に書き込まれる謎のアラビア語☆ww

2015-02-07 13:33

はい起きたー☆ 昨日の電王戦ドキュメントも見たー☆ 今日はこれからなんだぜー☆

ヒマなので 生配信しているぜ☆wwwww
http://live.nicovideo.jp/watch/lv209581942


では きふわらべちゃんの プログラムをいじっていこう☆ww



2015-02-07 14:58



ところで ニコ生やってたら アラビア語で いたずら書きがあって、
「騎士は海の中心に沈んだ」とか、書込みがあったんだぜ☆ww

これは キリスト教の聖書の モーセの中に出てきて、
イスラエル人のモーセは、追いかけてきたエジプト人の軍隊を海の中に
落っことして沈めた、というシーン
なんだが

これは要するに、

  ピンポンダッシュ

なんだぜ☆wwwwwwwwwwww
やめろ 中学生のいたずら☆wwwwwwwwwwwwwww



15:49



なんかエラーが出たんだぜ☆ww



16:08



将棋の駒が80個あることが判明☆



うーむ☆ 将棋盤の上には駒が置いてあるし、駒袋にも将棋の駒が1セット置いてあるな☆




16:31



駒袋に、余計な将棋の駒1セットが入っているようなんだぜ☆



これか☆

 駒袋の歩の数 = 18 - 先手駒台の歩の数 - 後手駒台の歩の数

とかやっているが、正しくは

 駒袋の歩の数 = 18 - 盤上の歩の数 - 先手駒台の歩の数 - 後手駒台の歩の数

だろう☆w



16:45



将棋の駒を40個に きちんと直したら 前に出ていたバグがまた出てきたぜ☆

後手の角頭の歩を取ったら、1三の歩が なぜか消えてなくなるという不具合だぜ☆



17:28

バグの原因がわかったんだが、
わたしは 先手の歩の数は 9枚 だと決め付けてプログラムを組んでいたんだが、
先手の歩の数が10枚になることがあるんだぜ☆

駒を取ったときなんだぜ☆


かといって、駒には0~39の番号を振っていないと、
マウスで掴んだり 放したりできないんだぜ☆



18:09



一手指すと、 オブジェクト→SFEN、SFEN→オブジェクト という変換が起こり、
画面が同期して再構成するところがまだ作れていなくて、
駒の先後が ふやふや しているんだぜ☆



20:15

SFEN は将棋盤を表すには十分なデータなんだが、
きふわらべの中で使うには 不十分なデータだということがわかったんだぜ☆

内部データ形式を SFEN にする案は没にする☆wwwwwwwwwwwwww




03:24



集合論がちゃんとできているのか、テストするフォームを作ってみたんだぜ☆

動いているようではある☆



3:56



理屈はこれでいいと思うんだが、
テキストボックスに日本語入力が利かなくなるという わけのわからないバグに
悩まされている☆wwww

使えないじゃないか☆wwwww



04:15



いい感じなんだぜ☆w

拍手[0回]

PR

【将棋】めざせ世界コンピュータ将棋選手権☆(48) コールスタックを追いかけて行くんだぜ☆

2015-02-05 21:44



StartposImporter#ToSky( )
Util_Sky#ImportSfen( )
KyokumenWrapper#ToKyokumenConst
KifuNarabe_KifuWrapper#SetCurNode( )
FlowB_3ErabuNaruNaranai#MouseLeftButtonDown( )

だいたい ここらへんまで遡ると分かるんだが、「成る/成らない」ボタンを押して
「駒が成った」ということに 差替えたときに バグるみたいだな☆




22:05



すこしずつ バグの場所を絞り込めてきたな☆

ToKyokumenConst が怪しいな☆




22:15

さて、よく読んでみようかなんだぜ☆



lnsgkgsnl
1r5b1
pppppp1+Pp
9
9
6p2
PPPPPPP1P
1B5R1
LNSGKGSNL

b P1 1

後手のポーンを1つ持ち駒にしている☆
うーん☆ 持ち駒の書式が違うみたいなんだぜ☆ 先手が歩を1枚持っているのなら

P なんだぜ☆



22:30

StartposExporter#ToSfenString( )

の中のパーサーを修正すればいいはず……☆


つまり、下の書き方は間違いなんだぜ☆

            Regex regex = new Regex(
                @"^\s*" +
                @"([123456789KRBGSNLPkrbgsnlp\+]+)/" +//1段目
                @"([123456789KRBGSNLPkrbgsnlp\+]+)/" +//2段目
                @"([123456789KRBGSNLPkrbgsnlp\+]+)/" +//3段目
                @"([123456789KRBGSNLPkrbgsnlp\+]+)/" +//4段目
                @"([123456789KRBGSNLPkrbgsnlp\+]+)/" +//5段目
                @"([123456789KRBGSNLPkrbgsnlp\+]+)/" +//6段目
                @"([123456789KRBGSNLPkrbgsnlp\+]+)/" +//7段目
                @"([123456789KRBGSNLPkrbgsnlp\+]+)/" +//8段目
                @"([123456789KRBGSNLPkrbgsnlp\+]+) " +//9段目
                @"(b|w) " +//先後
                @"\-?" +
                @"(?:K(\d+))?" +//▲王
                @"(?:R(\d+))?" +//▲飛
                @"(?:B(\d+))?" +//▲角
                @"(?:G(\d+))?" +//▲金
                @"(?:S(\d+))?" +//▲銀
                @"(?:N(\d+))?" +//▲桂
                @"(?:L(\d+))?" +//▲香
                @"(?:P(\d+))?" +//▲歩
                @"(?:k(\d+))?" +//△王
                @"(?:r(\d+))?" +//△飛
                @"(?:b(\d+))?" +//△角
                @"(?:g(\d+))?" +//△金
                @"(?:s(\d+))?" +//△銀
                @"(?:n(\d+))?" +//△桂
                @"(?:l(\d+))?" +//△香
                @"(?:p(\d+))?" +//△歩
                @" (\d+)" +//手目
                @"",
                RegexOptions.Singleline
            );


書き替えたんだぜ☆

            Regex regex = new Regex(
                @"^\s*" +
                @"([123456789KRBGSNLPkrbgsnlp\+]+)/" +//1段目
                @"([123456789KRBGSNLPkrbgsnlp\+]+)/" +//2段目
                @"([123456789KRBGSNLPkrbgsnlp\+]+)/" +//3段目
                @"([123456789KRBGSNLPkrbgsnlp\+]+)/" +//4段目
                @"([123456789KRBGSNLPkrbgsnlp\+]+)/" +//5段目
                @"([123456789KRBGSNLPkrbgsnlp\+]+)/" +//6段目
                @"([123456789KRBGSNLPkrbgsnlp\+]+)/" +//7段目
                @"([123456789KRBGSNLPkrbgsnlp\+]+)/" +//8段目
                @"([123456789KRBGSNLPkrbgsnlp\+]+) " +//9段目
                @"(b|w) " +//先後
                @"\-?" +//持駒なし
                @"(\d*K)?" +//持駒▲王 ※持ち駒が1個だけの場合は、数字が省略されます。
                @"(\d*R)?" +//持駒▲飛
                @"(\d*B)?" +//持駒▲角
                @"(\d*G)?" +//持駒▲金
                @"(\d*S)?" +//持駒▲銀
                @"(\d*N)?" +//持駒▲桂
                @"(\d*L)?" +//持駒▲香
                @"(\d*P)?" +//持駒▲歩
                @"(\d*k)?" +//持駒△王
                @"(\d*r)?" +//持駒△飛
                @"(\d*b)?" +//持駒△角
                @"(\d*g)?" +//持駒△金
                @"(\d*s)?" +//持駒△銀
                @"(\d*n)?" +//持駒△桂
                @"(\d*l)?" +//持駒△香
                @"(\d*p)?" +//持駒△歩
                @" (\d+)" +//手目
                @"",
                RegexOptions.Singleline
            );
そして 解析部分がめんどくさいことになった☆ww



23:10



まだ何かバグがあるのか☆wwwwwwwwww




23:30



駒台に1個乗ったのはいいんだが、袋に落っこちた1個の駒って何なんだぜ☆ww??



23:45



どうも、 1三の歩が 駒袋に落っこちていってしまうみたいなんだぜ☆
なぜ☆www



0:28

うむむ☆ 今日も分からないんだぜ☆

ppppppp+Pp で、+が1つ増えた分、最後の p が切り落とされてるとか そういうことは
ないのかだぜ☆?



正規表現を書き替えてみたんだが、ダメっぽいんだぜ☆www 寝よう☆ww

            Regex regex = new Regex(
                @"^\s*" +
                @"((?:[123456789]|\+?[KRBGSNLPkrbgsnlp])+)/" +//1段目
                @"((?:[123456789]|\+?[KRBGSNLPkrbgsnlp])+)/" +//2段目
                @"((?:[123456789]|\+?[KRBGSNLPkrbgsnlp])+)/" +//3段目
                @"((?:[123456789]|\+?[KRBGSNLPkrbgsnlp])+)/" +//4段目
                @"((?:[123456789]|\+?[KRBGSNLPkrbgsnlp])+)/" +//5段目
                @"((?:[123456789]|\+?[KRBGSNLPkrbgsnlp])+)/" +//6段目
                @"((?:[123456789]|\+?[KRBGSNLPkrbgsnlp])+)/" +//7段目
                @"((?:[123456789]|\+?[KRBGSNLPkrbgsnlp])+)/" +//8段目
                @"((?:[123456789]|\+?[KRBGSNLPkrbgsnlp])+) " +//9段目
                @"(b|w) " +//先後
                @"\-?" +//持駒なし
                @"(\d*K)?" +//持駒▲王 ※持ち駒が1個だけの場合は、数字が省略されます。
                @"(\d*R)?" +//持駒▲飛
                @"(\d*B)?" +//持駒▲角
                @"(\d*G)?" +//持駒▲金
                @"(\d*S)?" +//持駒▲銀
                @"(\d*N)?" +//持駒▲桂
                @"(\d*L)?" +//持駒▲香
                @"(\d*P)?" +//持駒▲歩
                @"(\d*k)?" +//持駒△王
                @"(\d*r)?" +//持駒△飛
                @"(\d*b)?" +//持駒△角
                @"(\d*g)?" +//持駒△金
                @"(\d*s)?" +//持駒△銀
                @"(\d*n)?" +//持駒△桂
                @"(\d*l)?" +//持駒△香
                @"(\d*p)?" +//持駒△歩
                @" (\d+)" +//手目
                @"",
                RegexOptions.Singleline
            );

拍手[0回]

【将棋】めざせ世界コンピュータ将棋選手権☆(47) 相バグ☆www バグ長い☆ww

2015-02-04 21:14

きふわらべの場合、駒を動かしたときに、将棋エンジンに棋譜を送信しているのは、

 Grayscale.KifuNarabe.N28_Client.ShogiEngineConsole#Message_ChangeTurn( ... )

でやっている☆

名前が長い☆ww もっと分かりやすくならないのか☆ww
名前を変えた☆w
 ↓

    Grayscale.KifuNarabe.N28_ShogiEngine.ShogiEngineInterface.Send_OnTurnChanged( ... );


☆www もっと長くなった☆wwww



21:28

「position startpos moves 2g2f 9a9b 2f2e 3a3b 2e2d 6a7b 2d2c+ 」

というメッセージを送信している☆ 先手が飛車先の歩を突いていって、
角頭の歩を取って 成ったところだぜ☆

送信メッセージは 間違ってはいないということなんだぜ☆




21:35

Send_OnTurnChanged( ... ) は7箇所で使われている☆
コンピューターに、 「position startpos moves ...」を送信するタイミングだな☆

  (1)マウスの左ボタンを放して、置いている駒をつまんだとき
  (2)マウスの左ボタンを放して、置いた駒から指を放したとき
  (3)「成る/成らない」ボタンを マウスの左ボタンで押したとき(1回目)
  (4)「成る/成らない」ボタンを マウスの左ボタンで押したとき(2回目)
  (5)巻戻しボタンを実行したとき
  (6)コマ送りボタンを実行したとき
  (7)再生ボタンを押して、コマ送りが1回起こるごとに


なんで2回やってるのがあるんだぜ☆? 1個減らしてみるぜ☆wwwwwww



21:51



将棋エンジンが 1筋の香を 歩を突き抜けて つっこんできたんだぜ☆w?

将棋エンジン側で バグっているのか☆?ww



22:07



なんで こんな状態になるんだぜ☆wwwww



22:25



相バグ☆wwww なにがどうなっているんだぜ☆www

人間VS人間でも バグが再現する☆wwwwwwwwww
自分が思っている原因とは違うようなんだぜ☆www




22:27



角を取ると、1三の歩が紛失(駒袋送り)して、取った角自体も消滅☆www




うーむ☆ 升番号がなんだって☆? 重複☆?
同じ升に駒が2つ以上もいるということなのかだぜ☆?



22:36



だいたい、「駒袋」にあると指定されている駒が 将棋盤の上にあるのが
表示がおかしいんだぜ☆www

なんで 表示がくるっているんだぜ☆ww??


表示を更新するのは Ui_PnlMain#Response( ) メソッドだぜ☆




23:09



しつこく 再描画処理をいれることで、データと表示の同期を高めたぜ☆ww

しっかし、駒を取ると 駒台に行くのではなくて 紛失して駒袋に入っていることに
なっているな☆ww

駒を取ったときに、駒台に置けずに ロストしてるんじゃないか☆?



23:17

Util_KifuTree#AppendChildB_Swap( ... ) が悪さをしているようにも思うんだぜ☆

そうでもなかった☆



23:41




基本的に 突然消えてなくなるのは 後手の歩だということが分かった☆
最初は1個の歩が、次はすべての後手の歩が いっせいに無くなる☆w

まだ バグは直らないんだぜ☆

拍手[0回]

【将棋】めざせ世界コンピュータ将棋選手権☆(46) バグを直したいんだぜ☆

2015-02-02 22:15

データと、画面の見た目を 同期するようにしてみたんだが、



バグっているということが よく分かるだけなんだぜ☆

このバグはなんなのか☆
歩を1個とったら、全部の歩を取ったことになっている気がするんだぜ☆



メモ:
  ・GUIで駒を取った瞬間は Kifusasi52_WhenKifuRead は呼び出されていない☆
   別に関数があるのか☆

  ・Ui_02Action#Komamove1a( ) が怪しい☆

よく見ると、先手駒台ではなくて、駒袋に歩が入っているから、
駒を取ったんじゃなくて、駒が消えてなくなった扱いになっているんだぜ☆



23:05

おやあ☆



取った駒は、種類しか覚えていないのかなんだぜ☆?

歩を取った、と覚えていても、どの歩か分からないんじゃないのか☆?

  ・これは 巻戻し用か。 駒台の上の駒を選べばいいだけだから
   取った駒の種類を覚えているだけか☆



それだったら、「駒」を覚えておいた方がいいんじゃないのか☆?



23:21



角を取ると、角が1ついなくなったことになっているな☆



23:33



駒の情報がずれているので、バグの原因な気がするんだぜ☆



23:59



自分の手番が終わった直後は 一瞬だけ 先手駒台に 「歩」 が乗っかって
いるんだが、向きが逆さなのは謎なんだぜ☆

このあと、相手の手番になるんだが、そのあとで 相手の歩が全部「駒袋」に飛んでいく☆

通信で送る SFEN が間違っているんだろうか☆?


まだ バグの正体が わからないんだぜ~☆

拍手[0回]

【将棋】めざせ世界コンピュータ将棋選手権☆(45) 駒の位置の再設定を忘れているのだろうか☆

2015-01-28 22:41

ちょっとメモっておくぜ☆

 画面上の駒の位置は、 Refresh_KomaLocation( koma, ~ ) という感じで
 設定しておく必要がある☆

データが更新されるたびに、リフレッシュ・駒ロケーション をする感じだぜ☆
これを忘れてるんじゃないだろうか☆



拍手[0回]

ブログ内検索

PR



絶版・品切れ本を皆さまからの投票で復刊させる読者参加型のリクエストサイト
復刊ドットコム

ネイフィールウォーター

応援フリーエリア

デジゲー博
むずでょは、第1回から毎年 出展しているんだぜ☆

ウサギのように新品入荷☆
カメのようにまだ置いてある既刊☆

同人ソフト一押し店 さんげっと
むずでょは、さんげっと を応援しているんだぜ☆

TVアニメ「Charlotte(シャーロット)」公式サイト
ニコ生の Angel Beats! 一挙放送が 面白かったので次のも応援するぜ☆ww

プロフィール

HN:
むずでょ
性別:
非公開

最新コメント

[01/02 Free Tax Marlboro Gold Regular Cigarettes Coupons 3 Cartons]
[12/30 Hot Selling Newport Regular Cigarettes Outlet 160 Cartons]
[12/29 http://www.patersonlabs.com/Marlboro/41.html]
[12/29 http://xz84.com/Marlboro/16.html]
[12/29 http://www.paragoninks.co.uk/Marlboro/93.html]

P R