忍者ブログ

ぐれーすけーるブログ

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

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

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



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

[PR]

×

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

【将棋】めざせ世界コンピュータ将棋選手権☆(78) きふわらべ の頭の中を作りたいんだぜ☆ww

2015-04-12 13:00

まず、次のような2つのクラスを作るんだぜ☆。

  ・interface Atama

  ・class AtamaImpl : Atama

大雑把に書いたんだが、これがどういうことか、説明しよう☆



ここに、大き目のダンボール箱があるとするんだぜ☆

     箱


次に、この箱の側面に 紙を貼って、

     「頭」


と書きます、なんだぜ☆ 
これが わたしの 【コンピューター・プログラミング概説】 なんだぜ☆ おわり☆


13:15


評価値の明細を出したいんだぜ……、と思っていたんだが、
結局それだけでは足りなくて、
頭の中身を丸ごと 見たいんだぜ☆

そこで、スコア明細ならぬ 頭明細 を最初から見据えて 作っておこうと思うんだぜ☆


例えば 平手初期局面☆
スコア明細は 計算の結果の 【点数】 の明細なんだが、

  (例) 角の頭の守り = 25点

頭明細は 【計算式】と【点数】 を一緒に出力しよう、というものなんだぜ☆

  (例) 角の頭の守り = 25 × 利いてる駒の数(最大3個)
               + 角の頭に駒があれば25点

という感じだな。


なんで 平手初期局面で 【角の頭の守り】 が最初から25点付いているんだ☆!
と 作った本人が 忘れている始末なんだぜ☆
あ~、いちおう駒が角の頭に置いてあるから 25点か☆ みたいな☆



13:25

あとは、【手の流れ】は 考えないように 作ろうと思うんだぜ☆
つまり、局面の盤面を ぽんと渡して、そこから考えるように 作るんだぜ☆

なぜかというと、

これ以上 プログラムを複雑にすると、開発している私の手に負えない
からなんだぜ☆www 妥協☆www




13:31

局面に評価値を付けるのは、指し手生成が終わったあとのタイミングなんだぜ☆
指し手は、なんかこういう風に、木の枝のように伸びていくんだぜ☆

  ・───┬─A──┬──D──
     │   └───E──
     ├─B──┬──F──
     │   └───G──
     └─C──┬──H──
         └──I──

このうち、点数を付ける局面は、枝の先っぽだけなんだぜ☆
上の図で言えば、D、E、F、G、H、I だけに点数を付ければいいんだぜ☆
A、B、C は後で勝手に答えが出る方法がある☆ww


この、D、E、F、G、H、I の局面に、【頭明細】を持たせたいんだぜ☆ww




16:02

ポナンザチャレンジ☆ww
ポナンザ vs 稲庭戦法 笑わせてもらったんだぜ☆wwww


きふわらの方は今、
頭明細 を持たせるために、既存の機能を1個潰している☆wwww



19:07

うっ☆

設計をし直したんだぜ☆



心は 手の流れ をいくつか片隅に置いている☆
  ┏━━━「心」━━━┓
  ┃         ┃
  ┃ ・手の流れ1  ┃
  ┃ ・手の流れ2  ┃
  ┃ ・手の流れ3  ┃
  ┃         ┃
  ┗━━━━━━━━━┛

例えば、「玉を固める手の流れ」「飛車先の歩を突く手の流れ」などは、
「心」と書いてある箱に入れておく☆
基本的に、「心」の箱の中には、評価や点数はない☆



19:27

この「心」は、「将棋指し」と書いた箱に入れるんだぜ☆

  ┏━━━「将棋指し」━━━━┓
  ┃             ┃
  ┃ ┏━━━「心」━━━┓ ┃
  ┃ ┃         ┃ ┃
  ┃ ┃ ・手の流れ1  ┃ ┃
  ┃ ┃ ・手の流れ2  ┃ ┃
  ┃ ┃ ・手の流れ3  ┃ ┃
  ┃ ┃         ┃ ┃
  ┃ ┗━━━━━━━━━┛ ┃
  ┗━━━━━━━━━━━━━┛

この「将棋指し」は、「将棋エンジン」と書いた箱に入れるんだぜ☆
うむ☆ これが、大会に出場する将棋エンジンそのものだな☆

  ┏━━━━「将棋エンジン」━━━━━┓
  ┃                 ┃
  ┃ ┏━━━「将棋指し」━━━━┓ ┃
  ┃ ┃             ┃ ┃
  ┃ ┃ ┏━━━「心」━━━┓ ┃ ┃
  ┃ ┃ ┃         ┃ ┃ ┃
  ┃ ┃ ┃ ・手の流れ1  ┃ ┃ ┃
  ┃ ┃ ┃ ・手の流れ2  ┃ ┃ ┃
  ┃ ┃ ┃ ・手の流れ3  ┃ ┃ ┃
  ┃ ┃ ┃         ┃ ┃ ┃
  ┃ ┃ ┗━━━━━━━━━┛ ┃ ┃
  ┃ ┗━━━━━━━━━━━━━┛ ┃
  ┗━━━━━━━━━━━━━━━━━┛

20:02

そして、点数付けをする部分は、「頭」という箱を作って、その中に入れるんだぜ☆

  ┏━━━━「将棋エンジン」━━━━━━━━━━━━━━━━┓
  ┃                            ┃
  ┃ ┏━━━「将棋指し」━━━━━━━━━━━━━━━┓ ┃
  ┃ ┃                        ┃ ┃
  ┃ ┃ ┏━━━「心」━━━┓┏━━━「頭」━━━┓ ┃ ┃
  ┃ ┃ ┃         ┃┃         ┃ ┃ ┃
  ┃ ┃ ┃ ・手の流れ1  ┃┃ ・局面判断1  ┃ ┃ ┃
  ┃ ┃ ┃ ・手の流れ2  ┃┃ ・局面判断2  ┃ ┃ ┃
  ┃ ┃ ┃ ・手の流れ3  ┃┃ ・局面判断3  ┃ ┃ ┃
  ┃ ┃ ┃         ┃┃         ┃ ┃ ┃
  ┃ ┃ ┗━━━━━━━━━┛┗━━━━━━━━━┛ ┃ ┃
  ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━┛ ┃
  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛


20:30

そして、「将棋指し」とは別に、「棋譜ツリー」という名前の 箱 を「将棋エンジン」に
入れるんだぜ☆

  ┏━━━━「将棋エンジン」━━━━━━━━━━━━━━━━┓
  ┃                            ┃
  ┃ ┏━━━「将棋指し」━━━━━━━━━━━━━━━┓ ┃
  ┃ ┃                        ┃ ┃
  ┃ ┃ ┏━━━「心」━━━┓┏━━━「頭」━━━┓ ┃ ┃
  ┃ ┃ ┃         ┃┃         ┃ ┃ ┃
  ┃ ┃ ┃ ・手の流れ1  ┃┃ ・局面判断1  ┃ ┃ ┃
  ┃ ┃ ┃ ・手の流れ2  ┃┃ ・局面判断2  ┃ ┃ ┃
  ┃ ┃ ┃ ・手の流れ3  ┃┃ ・局面判断3  ┃ ┃ ┃
  ┃ ┃ ┃         ┃┃         ┃ ┃ ┃
  ┃ ┃ ┗━━━━━━━━━┛┗━━━━━━━━━┛ ┃ ┃
  ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━┛ ┃
  ┃                            ┃
  ┃ ┏━━━「棋譜ツリー」━━━━━━━━━━━━━━┓ ┃
  ┃ ┃                        ┃ ┃
  ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━┛ ┃
  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

そして「棋譜ツリー」の箱には「棋譜ノード」という箱が いっぱい 入っているんだが、


  ┏━━━「棋譜ツリー」━━━━━━━━━━━━━━┓
  ┃ ┏━「棋譜ノード」━┓┓┓          ┃
  ┃ ┃         ┃┃┃………略      ┃
  ┃ ┃ ・局面データ  ┃┃┃          ┃
  ┃ ┗━━━━━━━━━┛┛┛          ┃
  ┗━━━━━━━━━━━━━━━━━━━━━━━━┛


「棋譜ノード」には、「局面評価明細」という 箱 を入れたい☆
これが 今朝言っていた、「頭明細」というやつ なんだぜ☆

  ┏━━━━━━「棋譜ツリー」━━━━━━━━━━━━━━━┓
  ┃ ┏━━━━「棋譜ノード」━━━┓┓┓         ┃
  ┃ ┃              ┃┃┃………略     ┃
  ┃ ┃ ┏━「局面評価明細」━┓ ┃┃┃         ┃
  ┃ ┃ ┃ ・ 100点   ┃ ┃┃┃         ┃
  ┃ ┃ ┃ ・  50点   ┃ ┃┃┃         ┃
  ┃ ┃ ┃ ・  80点   ┃ ┃┃┃         ┃
  ┃ ┃ ┗━━━━━━━━━━┛ ┃┃┃         ┃
  ┃ ┗━━━━━━━━━━━━━━┛┛┛         ┃
  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛


21:28

1点、25点、50点、75点、100点ぐらいの5段階評価で点数を付ければいいかな、と思っていたんだが、25点から25点上がって50点になるぐらい何とも思ってないんだぜ☆ 1点、10点、100点、1000点、10000点、ぐらいの5段階評価にしてみるか☆



21:54



やったんだぜ☆! 局面評価の明細機能 ができたんだぜ☆
これで 点数の内容を 調べられるんだぜ☆wwww

角の頭の紐付きに 1点 を付けているな☆wwww こいつめ☆wwwww



22:37

角の頭の紐付きは ちょっとだけ直したんだぜ☆

そして フラッドゲートで放流☆



目の前の歩を取る、という動きが うまく働いてないみたいなんだぜ☆

相手の歩が、味方の駒の目の前に当たっているときは、
局面の評価を 低くしたいんだぜ☆




22:57

うーむむ☆ 3手先の手まで読んでいるんだが、
3手先の手を読んだあと、1手先の手ではなくて、3手先の手を選んでいる可能性も
あるかも知れないんだぜ☆

また今度、確認したいんだぜ~☆


評価値の明細出力機能は付けたし、
成果 あり なんだぜ☆!

微速微進、遅々前進なんだぜ☆!



拍手[0回]

PR

【将棋】めざせ世界コンピュータ将棋選手権☆(77) 電王戦が早く終わったので、きふわらべを直すんだぜ☆ww

2015-04-11 14:21

自分のこともやらねば☆ww



19:49

で、
(1)SFENを読んで、指した局面が、本当にきちんとできているのか☆?

を試したいんだったんだぜ☆
そこで、position startpos moves 7g7f ... とかを読み取った直後の局面データを
画像ファイルで出力するところから始めたい☆ww



ちょっと改良してたんだが、

SFEN文字列を渡せば、局面データが返ってくる仕組みは、これなんだぜ☆
うーむ☆? in と out が分かりづらいな☆
また修正する☆wwww


20:37



計算結果(リザルト)を取る、ということを明確にしたんだぜ☆ww


22:40

局面の.pngファイルを、1メソッドで出力できるように 改良したんだぜ☆ww



本当にうまく動くのか☆ww?


23:10



まず、これが初期局面なんだぜ☆

任意の局面を 画像出力できるように 今、改造中なんだぜ☆


23:41



これが1手目、わたしの飛車先の歩突きを見た きふわらちゃん の、
盤面なんだぜ☆

ふむ☆ ここは合っているな☆
3手目、5手目も画像を出力するように 改造するんだぜ☆


23:43



3手目☆ ふうふう☆! うむ、ここまでは動いているな☆
次は5手目を出力するように するんだぜ☆



5手目☆ うむ☆ 手を指す前は、ちゃんと盤面は作っているみたいだな☆
次は、読みの最中に ちゃんと盤面を作っているのかどうか、調べるんだぜ☆


2015-04-12 0:06



うーむ、やっぱり手を飛ばしているんだぜ☆

▲2六歩(2g2f)→△7二飛(8b6b)→▲2五歩(2f2e)→△3四歩(3c3d)→△5五角(2b5e)

うーむ☆

0:30



応急処置的に、次の枝を読むときは 先後の符号をひっくり返す、
というように書き直してみたんだが、



先手の飛車が ひっくり返ってしまったんだぜ☆
うーむ☆
▲2六歩(2g2f)→△3四歩(2c2d)→▲2七飛(2h2g)ただしひっくり返る。
ちょっと惜しい☆



position ~ moves ~ の解析時に、先後の反転を忘れているのだろうか☆?

なんで 駒を動かしたら 先後がひっくり返っているんだぜ☆
isAiteban をひっくり返したらダメだったのか☆? うーむ☆


01:35



直ったかな、というところで フラッドゲートに放流したんだぜ~☆

うっ うっ うっ☆

ミニマックス法を実装したいんだぜ~☆


02:35



スコアの明細を出してみたんだぜ☆ww

まずは 角の頭を守らせて、 次に玉の固さを大きくするようにしたいんだぜ☆ww


棋譜ツリーの不具合が見えるようになって、
明細の下地は作ったので、
成果は あり なんだぜ☆

微速微進、遅々前進なんだぜ☆ww


拍手[0回]

【将棋】めざせ世界コンピュータ将棋選手権☆(76) 朝起きてちょっとだけソースを見るんだぜ☆ww

2015-04-10 05:44

将棋エンジンには position startpos moves 7g7f 3c3d ~ といった文字を送っていて、
それを元に盤面を 初手から作り直して、現局面を作っている☆

そういう機能はもう付いているので、【数手を読む】という機能はできあがって
いると思っていたんだが、多分できてるはずなんだが、
それは わたしができていると思っているだけなので、
あやしい☆wwwwwwwwwwwwwww

見直すんだぜ☆ww


6:27



USI の2番目のループで position を受け取るメソッド、
その名も AtLoop_OnPosition メソッドの中で、
棋譜をパースしているんだぜ☆

これを ゆっくり 見直そうと思ったんだが、
こんな時間帯に ゆっくりも してられない☆!んだぜ~~~☆

続きは また帰りになんだぜ☆

微速微進 遅々前進☆

拍手[0回]

【将棋】めざせ世界コンピュータ将棋選手権☆(75) YssTreeのフォーマットに合わせるのが面倒臭いので自作するんだぜ☆www

2015-04-08 03:29

ガ将の人に教えてもらったんだが、
棋譜のツリーなら YSS のがフリーで使えるらしいんだぜ☆ww

  YssTree
  http://www.yss-aya.com/ysstree.html

だが何故か わたしも わたしで 自分の棋譜ツリーログを作るぜ☆wwwwwww





ツリー構造というと、

指し手1ー指し手2ー指し手5
         ー指し手6
    -指し手3ー指し手7
         ー指し手8
    -指し手4ー指し手9
         ー指し手10

と伸びて行くと思うんだが、3手読んでいるはずの きふわらちゃん の棋譜ログは
どうも
    1段階な上に、自分が2回指している (現局面→自分→自分)ように見える
んだぜ☆

よく確認しなくてはいけないんだぜ☆



3:44



3手読む きふわらちゃんの考える、▲2六歩を受けての後手番の最善手なんだぜ☆
確かに角は広い所にいるが……。
後手番なのに2回動いているように見えるんだが、よくプログラムを確認しなくてはいけないんだぜ☆



指し手生成ルーチンが、おかしいことをやっているんだと予想するぜ☆



6:45

プログラムは大きく分けると、

  (1)将棋
  (2)ログ

の2つがあって、混ざってるんだぜ☆ なるべく ログ をプログラムの本筋の中で
あんまり でかく ならないように、
メインから小さくしたり、サブで大きくしたり、いろいろやってる内に朝になったんだぜ☆

微速微進、遅々前進なんだぜ☆


拍手[0回]

【将棋】めざせ世界コンピュータ将棋選手権☆(74) きふわらちゃんにミニ・マックス法を覚えさせたいんだが、動きが怪しい☆ww→盤面画像ログだけできた☆ww

2015-04-05 12:06

きふわらちゃんに ミニ・マックス法 を覚えさせようとしているんだが、どんな風に動いているのか分からないし、画像付きログにして900局面をブラウザに出そうとしたら ブラウザが真っ白になってフリーズするんだぜ☆ww


マックス・ミニ法と、ミニ・マックス法 はネーミングセンスが無いと思うんだぜ☆ どっちがどっちか わたしには分からん☆www むしろ チェス法 とか言ってくれればいいのに☆wwwww 抽象的でないから理系的には嫌なのか☆www




ミニ・マックス法というのは、 ドボンから遠いのが最高法 という意味なんだぜ☆

最善手というのは、ドボンから一番遠い手 という意味だな。
つまり 「最短の詰み」より、「悪手は捨てていく」 という発想で、読みを進めている☆




まだ、画像を 900 枚表示する方がブラウザ的には楽だな☆
えっ、画像処理も組み込め、っていうのか☆www? この将棋エンジン☆wwww



15:43



こういう感じで SFENから 1枚の .PNG 画像 を出力するように
ロガーを作っている……、本筋でないので飽きてきていて手が進まない☆wwwww


16:20



ふうふう☆! 

ふうふう☆!ww 日曜日がつぶれていくんだぜ~☆ww ミニマックス法はあとで着手する☆wwww





18:27



できた………と思ったら 後手の飛角が無いんだぜ☆
バグか……と思ったら

string sfen = "position sfen lnsgkgsnl/9/p1ppppppp/9/9/9/P1PPPPPPP/1B5R1/LNSGKGSNL w Pp 1 moves 5a6b 7g7f 3a3b";

2枚落ちのSFENをパクったんだったなんだぜ☆
じゃあ、できてるんじゃないか☆



23:12

天野宗歩第3局の終了図を試しに出力してみたんだが……☆



合ってるのかどうか、ネットで調べなければいけないんだぜ☆wwww
作ってるわたしが 棋譜をちゃんと読めてるのか 分からないんだぜ☆wwww


あれっ 全然違うんだぜ☆wwwww 棋譜を並べる以前の問題なんだぜ☆wwwww



きふわらちゃん、「打」を理解してないのか なんなのか「香」をミスっているんだぜ☆ 直したいんだぜ~☆





2015-04-06 0:03

「打」は直してないんだが、
盤面を画像にするトコだけは できた☆ んで、配布するんだぜ~☆



今日作った分を配布なんだぜ☆ これを使って、ミニマックス法の動きを確かめる棋譜ツリーを作ろうと思ったんだが、 そこまで行けなかったんだぜ☆


↓リンクを ぴょんぴょんと 飛んでくれ☆ww
http://muzudho.hatenablog.com/entry/2015/04/05/234846



2時間で作れるかと思ったら、10時間ぶっとんだんだぜ☆
微速微進、遅々前進なんだぜ~☆

拍手[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