コネクト・フォーを作ろうぜ☆(^~^)?<その2>

ヘコヘコヘコヘコヘコヘコヘコヘコ おぽぽぽぽぽぽぽっぽ☆(^~^) 公開下書き

前回の記事のからの続き>

Git hub

2020-08-23(sun)

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 じゃあ まず 見た目から 仕様を作ろうぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 前の記事でやらなかったか☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 人間の頭には 短期記憶と 長期記憶があんのよ!
復習しましょう!」

From engine:

Kifuwarabe's connect four
-------------------------

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 既にゲームができてるつもりで 書いていけだぜ☆」

From you:

uxi connect-four v20200823

From engine:

uxiok

From you:

isready

From engine:

readyok

From you:

uxinewgame

From you:

pos

From engine:

[ Next 1 piece(s) | Go O ]
  +---+---+---+---+---+---+---+
6 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
5 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
4 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
3 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
2 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
1 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
    a   b   c   d   e   f   g

KIFUWARABE_80x100x8_01_Futu.gif
「 さあ、こっから大変だぜ☆」

From you:

do d
pos

From engine:

[ Next 2 piece(s) | Go X ]
  +---+---+---+---+---+---+---+
6 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
5 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
4 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
3 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
2 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
1 |   |   |   | O |   |   |   |
  +---+---+---+---+---+---+---+
    a   b   c   d   e   f   g

From you:

do c
pos

From engine:

[ Next 3 piece(s) | Go O ]
  +---+---+---+---+---+---+---+
6 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
5 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
4 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
3 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
2 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
1 |   |   | X | O |   |   |   |
  +---+---+---+---+---+---+---+
    a   b   c   d   e   f   g

From you:

xfen

From engine:

xfen 7/7/7/7/7/7 O moves d c

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ↑ これで局面を記録ね」

KIFUWARABE_80x100x8_01_Futu.gif
「 途中図から始めるには どうすんだぜ☆?」

From you:

position xfen 7/7/7/7/7/2XO3 O

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ↑ 途中図までの棋譜を失うけど、こうね」

From you:

pos

From engine:

[ Next 3 piece(s) | Go O ]
  +---+---+---+---+---+---+---+
6 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
5 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
4 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
3 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
2 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
1 |   |   | X | O |   |   |   |
  +---+---+---+---+---+---+---+
    a   b   c   d   e   f   g

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ アンドゥも付けようぜ☆ 探索で要るんで☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 途中図から始めたら、棋譜がないんで戻れないぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 じゃあ 棋譜があるとしてくれだぜ☆」

From you:

undo
pos

From engine:

[ Next 2 piece(s) | Go X ]
  +---+---+---+---+---+---+---+
6 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
5 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
4 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
3 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
2 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
1 |   |   |   | O |   |   |   |
  +---+---+---+---+---+---+---+
    a   b   c   d   e   f   g

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ アンドゥは、スタックをポップするのと同じだな☆」

From you:

go

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ コンピューターに考えさせるのは go を使う☆
持ち時間も指定できるようにすべきだが、実装が大変なので今は省くぜ☆」

From engine:

bestmove c

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ コンピューターの推測する最善手が c なら、 bestmove c だぜ☆
投了したけりゃ bestmove resign でいいだろう☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 後手取ったら投了か?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 それだとつまんないんで、先手で、もう満局してるときだけ投了しろだぜ☆」

From you:

quit

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ↑ はい、おしまい!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 これで実装に進めそうなんだが、いい設計ツールがないよな」

KIFUWARABE_80x100x8_01_Futu.gif
「 Plant UML があるだろ☆!」

2020-08-24(mon)

KIFUWARABE_80x100x8_01_Futu.gif
「 info string はどうすんだぜ☆?」

info json { "nps":999999, "nodes":999999, "push":"a", "pieces":42, "leaf":true, "result":"draw", "O":"Hooray!", "pv":["a","b","c","d","e","f","g","a","b","c","d","e","f","g","a","b","c","d","e","f","g","a","b","c","d","e","f","g","a","b","c","d","e","f","g","a","b","c","d","e","f","g"] }

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 超長くなるが、こうだぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 つら……☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 重力って どうやってプログラムすんの?」

  +---+---+---+---+---+---+---+
6 | 0 | 1 | 2 |   |   |   |   |
  +---+---+---+---+---+---+---+
5 | 7 | 8 | 9 |   |   |   |   |
  +---+---+---+---+---+---+---+
4 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
3 |   |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
2 |   |   |   |   |32 |33 |34 |
  +---+---+---+---+---+---+---+
1 |   |   |   |   |39 |40 |41 |
  +---+---+---+---+---+---+---+
    a   b   c   d   e   f   g

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ めんどくさいんで 間抜け をするが、 7 を足せば 下隣の番地が分かるぜ☆
下隣に石が無ければ落ちろだぜ☆ 番地が 42 未満の間続けろだぜ☆」

20200823conn1.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 形になってきたな☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 4つ並んだかどうかの判定は、どうプログラムするんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 4つ並べない列を消去していく消去法でも使えば 無駄も減ると思うが、めんどくさいんで
全部調べたらどうだぜ☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 ナナメがむずかしいんだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 しかたのないやつだぜ☆」

  +---+---+---+---+---+---+---+
6 |   |   |   | 3 | 4 | 5 | 6 |
  +---+---+---+---+---+---+---+
5 |   |   |   |   |   |   |13 |
  +---+---+---+---+---+---+---+
4 |   |   |   |   |   |   |20 |
  +---+---+---+---+---+---+---+
3 |21 |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
2 |28 |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
1 |35 |36 |37 |38 |   |   |   |
  +---+---+---+---+---+---+---+
    a   b   c   d   e   f   g

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 番地を使えだぜ☆」

[(3, 21), (4, 28), (5,35), (6, 36), (13,37), (20, 38)]

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 始点と終点でペアを作れだぜ☆ ステップは 6 ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 なるほど……☆」

2020-08-25(tue)

  +---+---+---+---+---+---+---+
6 | 0 | 1 | 2 | 3 |   |   |   |
  +---+---+---+---+---+---+---+
5 | 7 |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
4 |14 |   |   |   |   |   |   |
  +---+---+---+---+---+---+---+
3 |   |   |   |   |   |   |27 |
  +---+---+---+---+---+---+---+
2 |   |   |   |   |   |   |34 |
  +---+---+---+---+---+---+---+
1 |   |   |   |38 |39 |40 |41 |
  +---+---+---+---+---+---+---+
    a   b   c   d   e   f   g

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ シニスター・ダイアゴナルはこうな☆ ステップは 8 ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 わかった、わかった☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 始点と終端のペアより、始点と反復回数のペアの方が嬉しくない?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 それもそうか……☆」

[(14,1), (7,2), (0,3), (1, 3), (2, 2), (3, 1)]

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 この数が何を意味するのかコメント書くのがめんどくさいが……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 次は思考部だな☆ 全幅探索なんか できないが……☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 読み無し、局面評価無しの、ポリシーのみ、実現確率探索にしようと思うぜ☆」

20200721cf10.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ マスは3進数で……☆」

20200824conn2.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ フィーチャーは25個☆
これらは 掛け合わせるのではなく、25個の部分点があるとみなして、総和することとするぜ☆」

20200824conn3.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ こんな盤面の場合……☆」

20200824conn4.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ その盤面は こう表されるぜ☆」

20200721cf13.png

3^7 * 6 = 13122
3^6 * 11 = 8019
3^5 * 4 = 972
3^4 * 4 = 324

13122 + 8019 + 972 + 324 = 22437

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 以前調べたところ、配列のサイズは 22437 で収まるのが分かったぜ☆」

20200721cf19a1.png
20200721cf19a2.png
20200721cf19a3.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ その配列には、指し手の評価値の部分点が入っているわけだぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 その部分点の 配点方法が まだ決まっていなかったぜ☆」

2020-08-26(wed)

20200825conn5.png

KIFUWARABE_80x100x8_01_Futu.gif
「 ↑ 例えば この局面評価を下げるために☆」

20200825conn6.png

KIFUWARABE_80x100x8_01_Futu.gif
「 ↑ 特徴25 が 0種 のとき 1点引く、 というのは 適当だろうか☆?」

20200825conn7.png

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ↑ 特徴25 とは ほとんど関係ないところで 勝負は決まるんじゃないの?
特徴25 の 0種 の評価なんかに 引っ張られていいの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 特徴25の0種 は 小さい評価値部分点であってほしいよな☆」

20200825conn8.png

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ↑ 特徴1の13種で手番が ○ のとき、評価値を最大にしてほしいのよ」

KIFUWARABE_80x100x8_01_Futu.gif
「 特徴25の0種 と、 特徴1の13種 は、 どっちが価値に貢献してるんだぜ☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 どうみても 特徴1の13種ね」

KIFUWARABE_80x100x8_01_Futu.gif
「 何で判断したんだぜ☆?」

20200825conn9.png

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ↑ リーチが掛かってるのは 特徴1 の上の a4 なんだから」

KIFUWARABE_80x100x8_01_Futu.gif
「 その特徴は リーチが掛かっている、というのが 意義 か……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 じゃあ 特徴1の13種 の評価値部分点を 1 増やしたいが、この 1 は どこから持ってくるんだぜ☆?
何も無いところから 1 持ってくると、ゼロ和 でなくなる☆ インフレするぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 他の選択肢と比較しろだぜ☆」

20200825conn10.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 特徴1が13種のとき、指し手aは100%、 指し手b~gは0% だったらいいんだろ☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 コーナーケースがあるぜ☆」

20200825conn11.png

KIFUWARABE_80x100x8_01_Futu.gif
「 ↑ ダブル・リーチかも知れない☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 じゃあ 部分点が100点 というのは 原理的に存在できなくて、せいぜい最大 50点 かだぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 トリプル・リーチは無いの?」

KIFUWARABE_80x100x8_01_Futu.gif
「 どう考えてもエッジ・ケース☆」

20200825conn12.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 420分率で可能☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 セプタプル(7重)リーチ の存在を考えると 60点が最大値かしらねぇ?」

KIFUWARABE_80x100x8_01_Futu.gif
「 そんな図形を考えることは困難……☆ ナン(none)・ケース☆」

20200825conn13.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 部分点は、こう配分されていてほしいよな☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 しかし それを どうやるのか……☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 答えが分かっていて、その過程が分からない、それを 代数 という☆ 3=x+1 ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 25の特徴について、シングル・リーチ、ダブル・リーチの有無をすべて調べるしか なくない?」

20200825conn14.png

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ↑ タテは シングル・リーチ しかないのよ」

20200825conn15.png

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ↑ ヨコは シングル・リーチ か、ダブル・リーチ があるのよ」

20200825conn16.png

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ↑ ナナメも、 シングル・リーチ か、ダブル・リーチ があるわね。 めんどくさいから 描かないけど」

KIFUWARABE_80x100x8_01_Futu.gif
「 すべてのリーチ局面で、次の指し手に ただしく 割合を割り振れるのだろうか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ピッタリいくか、近似か、いつまでも終わらないかの いずれかだろうな☆
機械学習やるなら 近似で十分☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 列だけみると リーチ に見えても、石の積み方 によって
まだ リーチではないケース、
リーチのケース、
もう リーチにはならないケース
の3つがあるよな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 豆だな☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 それを織り込んだ点数配分とは どうなるんだぜ☆?」

20200825conn17.png

KIFUWARABE_80x100x8_01_Futu.gif
「 ↑ そして 必ずしも そのリーチを使わずとも、
他のところで リーチが起こる可能性を消すことはできないぜ☆」

20200825conn18.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ まあ、4軸の焦点でなければ 100% か 0% か、確定しないよな☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 100% か 0% か判定できるときには 評価関数なんか要らないのよ。
100% と 0% の間を評価してほしいのよ」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 その間を 50%、 75%と25%、 87.5%と62.5%と37.5%と12.5%……、
のように 密度を持ってほしいよな☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 別記事を立てて、特訓がいるのでは☆?」

評価関数を設計しようぜ☆(^~^)?

2020-08-27(thu)

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 成分特徴を調べるのが めんどくさいな……☆ 1つ1つ やるしかないか……☆」

20200827conn45a3.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑つら……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 7x6 の盤でこれだけ大変なら、 15x15 の連珠盤は とても人力では無理だな☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 どの局面を取っても 投了を含む8つの指し手の合計が 840 にするには、どうやったらいいんだぜ☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 特徴が4つ重なってるマスと、特徴が2つしか重なってないマスがあるわよね」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 なんてこった☆」

255 / 8 = 31 … 7

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 じゃあ単純に 特徴は 初期値で30……は通過が溢れるか、25点持っていて、これを どんどん 移動していくことにするかだぜ☆
変域は 0 から 255 ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 投了の確率を記憶するには どうするんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 特に方法はない☆ 平らに均(なら)して 適当に指せだぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 勝ち評価値と、引き分け評価値の切り替えは どうすんの?」

15 * 7 = 105
20 * 7 = 140

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 指し手確率のトータルが 140 にまで減っていたときは、どの手も見込みなしという判断にしようぜ☆
見込みがないときは 供託金は 1手前の局面に送り出すことにするぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 なんだか 初期局面に近い方が 溢れそうだな……☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 じゃあ、勝ちと 引き分けで 両方 プレイアウトしろだぜ☆
勝ちの評価値で 勝ったら それを使え☆
引き分けの評価値で 引き分けたら それを使え☆
それでも漏れたら 2つのうちのどちらかを ランダムで使え☆」

2020-08-29(sat)

`25,`

22437 * 3 = 67311

# win draw
67311 * 2 = 134622

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 カンマを含めて 3桁で収まるとしても 改行を除けば 67311 byte☆
勝ちと引き分けの評価関数があるから だいたい 134 kb ぐらいか……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 先手の評価と 後手の評価 を1つの評価値でやって 足を引っ張り合わないか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 じゃあ2倍で☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 部分点を引こうと思っているんだが、引いてるのに増えたり、引きすぎていたりするな……☆
被っている特徴があるのか☆?」

```plain
Result channel=Win
File Vert Hori Baro Sini


a 1 8 16
b 2 8 17
c 3 8 18
d 4 8 19 20
e 5 8 21
f 6 8 22
g 7 8 23
```

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 初手は rank6 の特徴が すべての選択肢で被っている……☆
例えば 4つの手で 特徴8 から 1点引けば、特徴8 からは 4点引かれるぜ☆」

20200829conn47.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 しかし まあ、増えてほしいところは増えてるし、減ってほしいところは減ってるぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 非数学的 メカニズム的 だな☆」

20200829conn48.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 d列 ばっかり好きになってしまったようだぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 好きな列を、もっと好きになる 学習ルーチンよね」

KIFUWARABE_80x100x8_01_Futu.gif
「 プレイアウトで 投了率が高いのは何なのか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 投了しやすいものを 好きになって、それを止められないんじゃないか☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 なんという中毒……☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 モンテカルロ木探索みたいに 確率の低い選択肢も選ばれるように ばらす必要があるんじゃないの?」

2020-09-01(mon)

20200901conn2.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 初手なんだが、 d列 だけ 両方のナナメ棒が刺さっていて、他より点が高いんだぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 いい手なんじゃないか☆?」

20200901conn3.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑ 点数移動を進めていくと、 d列 の評価が伸びてるのはいいんだが、その 221 点の内訳のうち、 153 点は 特徴の4番 に入ってるんだぜ☆!」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 特徴8番 に点数を振ると 初手のすべての手に点数が入ってしまうし、
特徴19番と 特徴20番だって そのうち 別の列で使う特徴でしょ」

KIFUWARABE_80x100x8_01_Futu.gif
「 指した後の局面に 点を付けないといけないんじゃないか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 むむ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 要らんと思って省いた 3マスのナナメ とかも要るんじゃないか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 むむむむ……☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ぜんぜん かき混ざってないというのも あるんじゃない?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ふんぎぎぎ…………☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 初手は どれも 同じような確率になってないと、 隣の初手を ちっとも置いてくれなくない?
むしろ 他の手より とびぬけて高い確率をしてくれている必要があるんじゃないの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ごもっともだぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 2手目を見せてみろだぜ☆?」

20200901conn4.png

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 特徴9 に 高い点数が入っている……、つまり どの列でも 2段目に最初に置くなら 137点 が付くぜ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 そりゃ必ず どの列からでも 空っぽの2段目 にはたどり着くからな☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 点数は 指した後の局面に付いてないといけないんじゃないの?
7つの局面、25の特徴、つまり 175項目が 画面に表示されてないといけなくない?
それが 現在、減少後、増加後、端数調整後の4つで 計700項目が表示されているはずなのよ」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 大改造だぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 局面評価値を取得する posval みたいなコマンドを作ったらどう?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 なるほど☆ また今度だな☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 現局面と、指した後の局面を比較する posdiffval {file} も欲しいわね。
現局面の方にだけある特徴と、指したあとの局面の方にだけある特徴を取得する関数もほしいわね」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 まったく、まったく☆」

<書きかけ>

何度でもクリック!→

むずでょ@きふわらべ第29回世界コンピューター将棋選手権一次予選36位

光速のアカウント凍結されちゃったんで……。ゲームプログラムを独習中なんだぜ☆電王戦IIに出た棋士もコンピューターもみんな好きだぜ☆▲(パソコン将棋)WCSC29一次予選36位、SDT5予選42位▲(パソコン囲碁)AI竜星戦予選16位

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

むずでょ@きふわらべ第29回世界コンピューター将棋選手権一次予選36位 の最近の記事