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
21:54
やったんだぜ☆! 局面評価の明細機能 ができたんだぜ☆
これで 点数の内容を 調べられるんだぜ☆wwww
角の頭の紐付きに 1点 を付けているな☆wwww こいつめ☆wwwww
22:37
角の頭の紐付きは ちょっとだけ直したんだぜ☆
そして フラッドゲートで放流☆
目の前の歩を取る、という動きが うまく働いてないみたいなんだぜ☆
相手の歩が、味方の駒の目の前に当たっているときは、
局面の評価を 低くしたいんだぜ☆
22:57
うーむむ☆ 3手先の手まで読んでいるんだが、
3手先の手を読んだあと、1手先の手ではなくて、3手先の手を選んでいる可能性も
あるかも知れないんだぜ☆
また今度、確認したいんだぜ~☆
評価値の明細出力機能は付けたし、
成果
あり なんだぜ☆!
微速微進、遅々前進なんだぜ☆!
[0回]
PR
http://grayscale.dou-jin.com/Entry/172/【将棋】めざせ世界コンピュータ将棋選手権☆(78) きふわらべ の頭の中を作りたいんだぜ☆ww