【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(55) ハコを整えようぜ☆ww

2015-10-21 21:33

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「在宅バイトの環境が更新中なので、その間 きふわらべ の面倒を見るぜ☆」

KIFUWARABE_80x100x8

「おう、見てくれ☆」

201510212135

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「今、こんな感じで 直接 将棋エンジンと つないじゃっているんだが、

『きふわらべAIMS将棋サーバー』 というのを作って、

そっちとつなぐようにしたいぜ☆」

KIFUWARABE_80x100x8

「おう、改造してくれ☆」

 



 

2015-10-22 02:47

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「在宅バイトの方で進展があったのでそっちをやっていたぜ☆

きふわらべも ちょっと触ろう☆」

KIFUWARABE_80x100x8

「おう☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「AIMS将棋サーバーだったな☆」


03:02

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「C#で スレッドを起動する方法ってどうだったかな……、あ、

標準入出力が混乱するぜ☆ プロセスとして起動するようにしよう☆www」

KIFUWARABE_80x100x8

「AIMSから AIMS将棋サーバーを起動して、

AIMS将棋サーバーから わたし を起動するようにしようぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「プロセス 2つも作っちゃうけど、その方が 分かりやすいかなんだぜ☆」

 


03:07

KITASHIRAKAWA_Chiyuri_80x100x8_03_Ahee

「うっ、うわぷん☆!

ソースコードがややこしいぜ☆

きふわらべのGUIが 将棋サーバーがやることを兼ねていたこともあって

混乱中だぜ☆!」

KIFUWARABE_80x100x8

「将棋サーバーがやるような処理は、GUIの機能と、切り分けようぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「おうっ、だぜ☆!」


04:48

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「書き直しで、たいへんだぜ……☆」


07:45

KITASHIRAKAWA_Chiyuri_80x100x8_03_Ahee

「うっ☆ つらい☆」


07:54

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こういうGUIがある、という前提のプログラムになっているので、

GUIが無かったらどうするんだぜ、というところで 不一致が起こるんだぜ☆

GUIが どういう形かだなんて、固定するのもおかしいんだぜ☆」

KIFUWARABE_80x100x8

「抽象的なGUIを 仮に想定してみてはどうだぜ☆?

名付けて VirtualGui ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うーむ☆ そうするかなんだぜ☆」


 

08:57

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「プログラムの途中なんだが、眠くなったので寝るぜ☆ おつ☆

微速微進、遅々前進だぜ☆ww」

 

はてなブックマーク - 【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(55) ハコを整えようぜ☆ww
[`yahoo` not found]
[`yahoo_buzz` not found]
このエントリーを Google ブックマーク に追加
Digg にシェア
Facebook にシェア
reddit にシェア
LinkedIn にシェア
[`evernote` not found]
StumbleUpon にシェア
GREE にシェア
email this
LINEで送る
Pocket

【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(54) 考えても無駄だぜ☆wwきふわらべの面倒を少し見るんだぜ☆www

2015-10-20 16:56

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「きふわらべの面倒を見るぜ☆」

KIFUWARABE_80x100x8

「おう、みてくれ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「今週は、 見た目 を取り繕うぜ☆」

201510201415

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「今 こんな感じなんだが……☆」

KIFUWARABE_80x100x8

「かっこいいじゃないか☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「これで大会に出ようぜ☆wwwwwww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「いや、まだ全然できてないんだぜ☆

まずは見た目を整えていこうぜ☆」


17:18

201510201717

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「将棋の駒を、くるりっ だぜ☆」

KIFUWARABE_80x100x8

「おっ☆ ひっくり返ったぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「1度 C# で作ったものを、AIMS で作りなおす気か☆wwwwww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「むしろ、最初に AIMS で作りたかったんだが、

スキル的条件が揃ってなかったので C# で先にスキルを身につけたんだぜ☆

これからは AIMS のターンだぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「2度手間☆wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww」

 


17:25

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「持ち駒を置きたいんだが、画面の縦幅が足りないぜ☆

ウィンドウは、どれぐらい縦長にしてもいいと思う☆?」

KIFUWARABE_80x100x8

「ググろうぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「…………☆」


 

17:39

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「2015年だと、ブラウザなら縦幅は550px、スクリーンいっぱいなら700pxは

取ってもよさそうだぜ☆」

 

Bigmac inc. 『LPやWEBサイトの縦幅(ファーストビューの高さ)は何pxが適切か?』

http://big-mac.jp/recommend/lp%E3%82%84web%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AE%E7%B8%A6%E5%B9%85%EF%BC%88%E3%83%95%E3%82%A1%E3%83%BC%E3%82%B9%E3%83%88%E3%83%93%E3%83%A5%E3%83%BC%E3%81%AE%E9%AB%98%E3%81%95%EF%BC%89%E3%81%AF/

 

KIFUWARABE_80x100x8

「グーグル先生の知り合いは多いな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「上下にタスクバーを置いている人もいるだろうし、AIMSのウィンドウの縦幅は

700より小さいぐらいにしようぜ☆」


17:46

201510201745

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「じゃあ、縦幅は 640px とかでどうだぜ☆?」

UEUESHIMA_Komado_80x80x8_02_nitaari

「ぶはっ☆wwwwwwww 正方形☆!?wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww」

KIFUWARABE_80x100x8

「かっこいいじゃないか☆ 文句の付けようがないんじゃないか☆?」

UEUESHIMA_Komado_80x80x8_02_nitaari

「正方形を押すのは手塚治虫と EIZO ぐらいなんじゃないのか☆wwwwwwwwwwwwwwwwwwwwwwwwwww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「おっと手が滑って保存ボタンを押してしまったぜ☆ もう変えられないぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「なんだぜそれ☆wwwwwwwwwwwwwwwwwwwwww」


18:38

201510201838

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「フリー素材を背景にするだけで、ゲーム画面っぽくなるよな☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「海に行きたいから 背景を海にしたな☆!wwwwwwww」

KIFUWARABE_80x100x8

「評価値バーはどこに置くんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「上にスペースを開けようか、それとも円グラフ・バーでも置くか☆www

幸せな悩みだよなー☆wwwww」


19:07

201510201906

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「将棋盤、でけた☆!」

UEUESHIMA_Komado_80x80x8_02_nitaari

「直線ツールで引いただけじゃないか☆wwwwwwwwwww!」

KIFUWARABE_80x100x8

「かっこいい将棋盤だぜ……☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よし、ラーメン☆! 休憩だぜ☆!」

UEUESHIMA_Komado_80x80x8_02_nitaari

「☆wwwwwwwwwwwwwwww」


2015-10-21 02:49

..

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「VAVAを作業用BGMに フォントのドット絵を描いていたんだぜ☆」

 

fntA32x16_1

 

fntA32x32_1

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ふぅ☆ わたしが既に作っていたドットの2倍角だぜ☆

そして 持ち駒の枚数表示と、 評価値の欄を作っていたんだぜ☆」

 

201510210248

KIFUWARABE_80x100x8

「おおっ☆! かっこいいんだぜっ☆!」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「ハコはでけてきた感じだな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「でけてきた感じだぜ☆」


02:56

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「続きはまた 明日 だぜ☆」

KIFUWARABE_80x100x8

「おう☆!」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「おーう☆!」


 

見た目に進歩 あり なんだぜ☆!

第3回将棋電王トーナメントに向けて、微速微進、遅々前進なんだぜ☆!

 

はてなブックマーク - 【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(54) 考えても無駄だぜ☆wwきふわらべの面倒を少し見るんだぜ☆www
[`yahoo` not found]
[`yahoo_buzz` not found]
このエントリーを Google ブックマーク に追加
Digg にシェア
Facebook にシェア
reddit にシェア
LinkedIn にシェア
[`evernote` not found]
StumbleUpon にシェア
GREE にシェア
email this
LINEで送る
Pocket

【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(53) 風邪気味☆wwちょっとだけ開発を進める☆www

2015-10-19 06:48

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「きふわらべの めんどうも 見てやらないとな☆」

KIFUWARABE_80x100x8

「おっおー☆!」


06:52

201510190652

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「将棋を指すのに、テキストボックスとか邪魔だから、

別ウィンドウに分けたいぜ☆ww」

KIFUWARABE_80x100x8

「おう☆ やってくれ☆

ただし、入力ウィンドウがないと コンピューターと対局できなくなるので

機能を無くさないように注意なんだぜ☆」


08:10

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ビューと、モデルの切り分けが進んでなくて 結構大変……☆」


08:22

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Util_InServer.OnChangeSky_Im_Srv メソッドが、

ShogiGui_Base型を引数に取っているんだが、

これ、Model_PnlTaikyoku型 にできないのだろうか☆

ShogiGui は ビューとモデルの両方を持っていて、

でかすぎるんだぜ☆ 調べてみよう☆」


10:00

201510191000

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「テキストボックスの移動はできたぜ☆

自作のボタンの移動が大変なんだが……☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「順調そうじゃないか☆」


10:49

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「描画は Paint メソッドで、マウスボタンに反応するメソッドというのもあったな☆

どれだったかな☆ 調べるぜ☆」


10:52

201510191052

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「マウス操作は、すぐ処理を実行するのではなく、

TimedB というクラスのプロパティーに、どんな操作をしたかという情報を

溜めていく形に作っておいたのか☆ 忘れていたぜ☆」


11:34

201510191134

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ウィジェットのリストを1つにしたら、2つのウィンドウに

同じボタンが表示されてしまったぜ☆

ボタンごとに どちらのウィンドウに表示するか、指定しようかなんだぜ☆?」


13:19

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「駒の画像をシンプルなのに換えようとしているんだが、

駒の座標は どこで設定されているのか、辿るのがむずかしいんだぜ☆」


13:25

201510191325

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「駒の位置を調整するメソッドがあるのか☆ もう、忘れていたぜ☆」


13:35

201510191329

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「グラフィックをどうしようか悩み中なんだぜ☆www

201マス盤って、邪魔なんだぜ☆wwwww

しかし この仕様を改造するのは 大改造すぎるので 仕方ないぜ☆」

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「3つあるスタートボタンが邪魔じゃないか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 『▲先 MAN vs COM △後』 と、

『△先 COM vs MAN ▲後』 ボタンに変えようか☆

2つあれば十分だろ☆」



 

16:00

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「飯食ってきたぜ☆」

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「おか☆」

KIFUWARABE_80x100x8

「おかなんだぜ☆」

201510191552

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そろそろ AIMS をマン・インターフェースとした

きふわらべ の開発に挑戦したいんだぜ☆」

KIFUWARABE_80x100x8

「やるだけやってみようぜ☆」


18:02

201510191802

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「牛おっけ☆!」

KIFUWARABE_80x100x8

「牛オッケー☆!」

UEUESHIMA_Komado_80x80x8_03_jitoo

「牛☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ゲームエンジンAIMSと、将棋エンジンは連携できるみたいだな☆」

KIFUWARABE_80x100x8

「あとは地道な努力だぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「どこまでがんばれるだろうか☆www」


18:58

201510191857

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「将棋エンジンを起動しっぱなしで 強制終了すると

PCを再起動しないと ビルドできないぜ☆ 悩ましいぜ☆」


19:49

201510191949

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「usiokを返してきているのに、プログラムが反応しないと思ったら、

usiokの後ろにブランク(空白)が付いてきているのかなんだぜ☆?」


20:10

201510192009

KIFUWARABE_80x100x8

「bestmove 2g2f」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「おk☆ 受け取ったぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「見事に成功してるじゃないか☆wwww」

KIFUWARABE_80x100x8

「やったな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「やったぜ☆」


20:19

–末尾にブランクが2文字入っているので取り除く。
receive = string.sub( receive, 1, string.len(receive)-2 )

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「改行コードでも入っているんだろうか☆ 文字列長が2多かったので、

末尾から2文字削ると、ちゃんと動くぜ☆」


20:56

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「将棋盤の見た目を作ろうと思っていたんだが、目がしょぼしょぼしてきたので

今日はここまでだぜ☆」

KIFUWARABE_80x100x8

「おつだぜ☆!」

UEUESHIMA_Komado_80x80x8_02_nitaari

「おっつ~☆」


 

見た目に取り掛かったんだぜ☆www Luaとの連携 あり なんだぜ☆!www

第3回将棋電王トーナメントに向けて、微速微進、遅々前進だぜ☆!

はてなブックマーク - 【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(53) 風邪気味☆wwちょっとだけ開発を進める☆www
[`yahoo` not found]
[`yahoo_buzz` not found]
このエントリーを Google ブックマーク に追加
Digg にシェア
Facebook にシェア
reddit にシェア
LinkedIn にシェア
[`evernote` not found]
StumbleUpon にシェア
GREE にシェア
email this
LINEで送る
Pocket

【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(52) 風邪気味☆wwちょっとだけ開発を進める☆www

2015-10-18 19:17

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「部屋着を長袖にして 開発再開だぜ☆」

KIFUWARABE_80x100x8

「体は無理するななんだぜ☆ アタマは無理して使うのがいいんだが☆」

UEUESHIMA_Komado_80x80x8_04_achaa

「じっと寝ていられないのかなんだぜ☆」


KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「きふわらべの、二駒関係の評価関数を もっとシンプルなものに

したいと思っているぜ☆」

KIFUWARABE_80x100x8

「ほう☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「もう単純に、この駒と、この駒、2つ選んで、点数を150にする、

みたいなぐらい簡単にしようと思うぜ☆

自動点数付けボタンはオプション☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「完成に向けて 機能を削減していく段階だな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「とりあえず、まずは -999 ~ 999 の点数内に収まるように、

範囲を超えた分は切り詰めるチェックを入れるぜ☆」

KIFUWARABE_80x100x8

「おう☆」


19:31

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「改造の前に入出力のチェックだぜ☆」

201510181931

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「CSV形式のテキスト・ファイルの升と、

内部メモリの配列の添え字との対応関係を出力して調べてみるぜ☆」

KIFUWARABE_80x100x8

「説明されても分からないので、

やって 物を見せてくれ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よし☆ やるぜ☆」


19:35

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「まず、データのファイルを コピー、リネームして退避するぜ☆

これがやりたくて、ファイルパスを変えたんだぜ☆」

 

201510181934

 


19:44

201510181944

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こんな風に、配列1の添え字、アンダースコア、配列2の添え字 という風に

出力してみたんだぜ☆

例えば 1プレイヤーの9一玉vs2プレイヤーの9一玉は、[477][1170]

ということだぜ☆ 合っているだろうか☆?」

201510181948

KIFUWARABE_80x100x8

「このコメント欄を見て答え合わせしようぜ☆

1Pの玉は 405~485、

2Pの玉は 1386 / 2 + 405~485 だな☆

盤上の 9一 は、 9九が 80 ということを考えると、72 だな☆

1一は 0。

よって、

1Pの玉は 477 = 405 + 72。

2Pの玉は 1170 = 1386 / 2 + 405 + 72 だぜ☆

ファイルには 477_1170 と書かれているのが正しいんだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ぴったりだな☆」

KIFUWARABE_80x100x8

「やったな☆!」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「1サンプルだけだが、入出力は問題なさげか☆」


21:31

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「おっ☆ コンピュータ将棋エンジン うさぴょん の本がHTML化されていたので

読んでいたんだぜ☆」

 

『コンピュータ将棋のアルゴリズム HTML版』

http://homepage1.nifty.com/Ike/ComShogi/index.html

 

KIFUWARABE_80x100x8

「打ち歩詰めとか、反復進化とか、きふわらべにまだ実装されていない機能が

いくつかあるぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「また今度な☆」


21:49

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「フィーチャー・ベクターの学習時は 浮動小数点型を使って細かく調整しているんだが、

細かすぎるので、もう少し ざっくりした数字に変えていくぜ☆

小数点以下 第2位 までで十分だろ☆」

KIFUWARABE_80x100x8

「おう☆ 何が十分か分からないが、やってくれ☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「完成に向けて、仕様を ざっくりに していくんだな☆」


22:36

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「評価値の出し方を 根底から 変更中 だぜ☆」

KIFUWARABE_80x100x8

「風邪気味なのか、やけに 大胆に改造中だな☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「シンプルにしていくのかなんだぜ☆」


23:04

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「評価値を、基本的に 足し算の累計 にするように改造したぜ☆

王や 金銀を あんまり動かさないようになっちゃったけど、

評価値の設定はまた これからだろ☆」

KIFUWARABE_80x100x8

「おう☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「今日はここまでだぜ☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「おつー、なんだぜ☆」


 

第3回将棋電王トーナメントに向けて、微速微進、遅々前進なんだぜ☆!

 

はてなブックマーク - 【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(52) 風邪気味☆wwちょっとだけ開発を進める☆www
[`yahoo` not found]
[`yahoo_buzz` not found]
このエントリーを Google ブックマーク に追加
Digg にシェア
Facebook にシェア
reddit にシェア
LinkedIn にシェア
[`evernote` not found]
StumbleUpon にシェア
GREE にシェア
email this
LINEで送る
Pocket

【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(51) 差分計算はどうやってやるんだぜ☆www

2015-10-17 14:54

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「二駒関係PPのテーブル、ちゃんと 場所があっているのか、確認したいぜ☆」

KIFUWARABE_80x100x8

「確認しようぜ☆」


15:06

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「その前に、fvのテキスト・ファイルを

1つのフォルダーにまとめたいんだぜ☆

コピペが楽になるから☆」

201510171504

 

KIFUWARABE_80x100x8

「まとめようぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「フォルダー・パスはプログラムのどこに書いてたっけ☆?」


21:59

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ファイルパスの書き換えが進んだぜ☆」


2015-10-18 00:10

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Path.Combine( a, b )というのを使うと、

ファイルパスをつなげられるみたいだな☆

filefile.csv とか、

file//file.csv になって困っていたんだが、

file/file.csv という風に セパレーターの有無を判断して

付けてくれるんだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ファイルパスは、だいたいオッケーだぜ☆

fvフォルダーの下に、fv~.csv の一連のファイルを移動したぜ☆」

KIFUWARABE_80x100x8

「やったな☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「続きはまた今度だぜ☆!」


 

ファイルパスを変更したぜ☆ 整理整頓の進捗 あり なんだぜ☆!

第3回将棋電王トーナメントに向けて、微速微進、遅々前進なんだぜ☆!

はてなブックマーク - 【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(51) 差分計算はどうやってやるんだぜ☆www
[`yahoo` not found]
[`yahoo_buzz` not found]
このエントリーを Google ブックマーク に追加
Digg にシェア
Facebook にシェア
reddit にシェア
LinkedIn にシェア
[`evernote` not found]
StumbleUpon にシェア
GREE にシェア
email this
LINEで送る
Pocket

【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(50) 差分計算で局面評価を早く終わらせたいんだぜ☆!ww

2015-10-16 16:41

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「差分計算をすると、局面評価が早く終わるらしいんだぜ☆」

KIFUWARABE_80x100x8

「差分計算しようぜ☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「勉強中☆

ここで原理を おさらいしようぜっ☆!」


KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「まず、きふわらべは 1局面に評価を出すのに、

ざっくり、 40×40 回の計算をしているんだぜ☆

1600回だな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「このうち、1手指して 動いているのは 2駒 だけ☆

2つの局面があるとき、ざっくり言うと その2局面は、

動かした 2×40 と、動かさなかった 2×40 だけが違うんだぜ☆

80回分の計算が 異なるわけだな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「1600 - 80 = 1520☆

およそ、1520回分の計算は、前の計算結果を再利用すればいいんだぜ☆」

KIFUWARABE_80x100x8

「再利用しようぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そこで ひとまず、計算結果は 1つの変数に足しこまず、

40×40の計算から、

駒タテ計 40個、 駒ヨコ計 40個 の、 80個の 計算結果盤 を作っておいて、

あとでもう1回 80回ループをする、

という形にしておくか☆」

KIFUWARABE_80x100x8

「えっ☆? なんだって☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うーむ、現状、きふわらべの二駒関係は

KK、先手KP、後手KP、PP の4つの表に分かれているんだが、

内部的には 1つのPP表に、

外部的には そのままに、

改組しなおそうかなんだぜ☆」

KIFUWARABE_80x100x8

「やってくれ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「現在の表の末尾に足すか☆

先手玉×81マス、後手玉×81マスを☆」


17:30

201510161730

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「今、こういう感じなんだぜ☆

この KK、1pKP、2pKP、PP の4つを、

1つの PP にまとめようかと思うんだぜ☆」

KIFUWARABE_80x100x8

「おう☆ やってくれ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「まず、KK を、PPの後ろに足そうか☆

やってみるぜ☆」

 


17:40

201510161740

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「思い切って ごそっと 変更することにしたぜ☆」


18:10

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「配列の添え字も 数えなおしだぜ☆」

201510161809

KIFUWARABE_80x100x8

「金と飛車の間に、王を入れたのかなんだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そうだぜ☆」


18:19

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こういうところも変えなくちゃな☆」

201510161819


18:28

201510161828

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「変え忘れがあったぜ☆ ここはリテラル数字ではなく、割り算にしておこう☆www」


19:08

201510161908

KIFUWARABE_80x100x8_02_Hidosu

「ぼーうぼーう☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「きふわらべ 頓死☆www 成り駒が動くことが 視えていないようだな☆wwww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「二駒関係の空ハコは 無事にエラーを起こしていないようだな☆

ここに 中身を入れていくか☆www」


19:15

201510161913

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こういう大改造をやりたいわけだぜ☆」

KIFUWARABE_80x100x8

「やろうぜ☆ww」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「差分計算を簡単にするために

KK、先手KP、後手KP、PP だったのを、 PP に統一するわけかなんだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そうそう☆」


19:22

201510161922

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こういうループを書き直しだぜ☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「KK表の筋は、PP表の筋に書き直しだな☆

先手K,後手K とあるんだが、うまく書きなおせるかななんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「プレイヤー1の段、プレイヤー2の段、プレイヤー1の列、プレイヤー2の列の

4段ループを、

81×81 の2段ループに書き直しだぜ☆

数字の変換機を作った方がいいな☆ww」

 


19:35

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こんな感じになるはずだぜ☆」

201510161935


19:40

201510161940

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「PP表を、KP表に 逆変換したい場所もあるぜ☆」


22:01

201510162201

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「変えなきゃいけないところは、いっぱい ありそうなんだぜ☆」

KIFUWARABE_80x100x8

「どこを変えたか、メモって行こうぜ☆」


23:00

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「順調に変換作業は進んでいるぜ☆」


23:14

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「数値が調整された回数を記録した、リザルト・ベクターというのも持っていたんだが、

構造の大変更に伴って、廃止するぜ☆」

KIFUWARABE_80x100x8

「おう☆ 持ち駒が ずっと 0 だったり、

飛車は わりとたくさん編集されていたり、いろいろ分かって 良かったんだが、

時間の少ない中での 大改造なので 仕方ないな☆」

 


23:31

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「右脳というハコも用意していたんだが、

これ結局、フィーチャー・ベクターしか入ってない大きな箱なので、

フィーチャー・ベクターに統合するぜ☆」

KIFUWARABE_80x100x8

「おう☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「いろいろ 風呂敷を広げていたものを 片付ける段階に入ってきたんだな☆」


02:59

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「KK、KP を、PP に統合した きふわらべ を フラッドゲートに放流するぜ☆」

KIFUWARABE_80x100x8

「おう☆ がんばるぜ☆!」


 

03:11

201510170310

KIFUWARABE_80x100x8_02_Hidosu

「へちょん☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よしよし☆ 駒の紐付き が アタマからすっかり 抜け落ちちゃったみたいだな☆」

KIFUWARABE_80x100x8

「コマノヒモヅキって、何なんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うーむ☆ それを学習するのは大変だぜ☆

ただ、駒の紐付きに点数を入れるように、

今の うそがくしゅう装置 に入れておくのは重要だな☆」


05:35

201510170535

KIFUWARABE_80x100x8

「ふっ☆wwww 満腹だぜ☆wwwww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「1棋譜を学習するのに、50分ぐらい かかっているな☆wwwww

130回ぐらい ボタンを押すのも辛いぜ☆wwwwww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「持ち駒も、二駒関係の学習に反映されるようにしたつもりなんだが、

うまく機能しているかどうか分からないぜ☆wwww」


05:56

201510170555

KIFUWARABE_80x100x8

「ほっほ☆ ほっほ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「きふわらべ vs きふわらべ だと、王手しそうな いいところまで行くようになったんだぜ☆

大きな進歩だぜ☆

ま、きふわらべの王様が 自ら 上へ登ってきてくれるからなんだが……☆」

KIFUWARABE_80x100x8

「ほっほー☆!」


06:07

201510170606

KIFUWARABE_80x100x8_02_Hidosu

「うっ☆ うっ☆ うっ☆ くやしー☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よしよし☆ いくつかの評価関数で補ってやる必要もありそうだな☆

また今度だぜ☆」

KIFUWARABE_80x100x8_02_Hidosu

「頼むぜ~☆!」

UEUESHIMA_Komado_80x80x8_02_nitaari

「おっ☆ PP には、うまいこと統合できたのか☆

次は 差分計算か☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「それもやりたいところだぜ……☆

大会までの残りの期間で、何を優先して取り組んでいくかが 重要なんだぜ☆!」


 

二駒関係の整理整頓 あり なんだぜ☆!

第3回将棋電王トーナメントに向けて、微速微進、遅々前進なんだぜ☆!

 

はてなブックマーク - 【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(50) 差分計算で局面評価を早く終わらせたいんだぜ☆!ww
[`yahoo` not found]
[`yahoo_buzz` not found]
このエントリーを Google ブックマーク に追加
Digg にシェア
Facebook にシェア
reddit にシェア
LinkedIn にシェア
[`evernote` not found]
StumbleUpon にシェア
GREE にシェア
email this
LINEで送る
Pocket

【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(49) 局面評価部分の見直し☆ww

2015-10-16 00:36

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「起きろ、きふわらべ☆」

KIFUWARABE_80x100x8

「ふぇぇ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「局面の評価関数は 今、5個 になったんだが、

今大会は この5つで 挑もうと思うんだぜ☆」

  • 二駒関係KK
  • 二駒関係KP
  • 二駒関係PP
  • 駒割
  • 千日手

 

KIFUWARABE_80x100x8

「ほう☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「他のは 今大会で使わないので、ソースコードから除外するぜ☆」

KIFUWARABE_80x100x8

「よし、どんどん やろうぜ☆!」


00:52

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「局面の評価の付け方なんだが、」

  • 千日手のとき
  • それ以外のとき

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「で、まず 大きく分けてあるんだぜ☆

リストA,リストB みたいな感じで☆」

KIFUWARABE_80x100x8

「ふむ☆」


 

00:57

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「次に 局面の評価を どこに格納してあるかなんだが、

局面データは、わたしの設計上 const かのように扱うように縛っているので、

評価値を ここには入れたくないんだぜ☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「こだわりだな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そこで、棋譜ツリー・コレクションの ノード要素を拡張して、

棋譜ノード というクラスを作って、そっちに

  • 局面
  • 評価明細

と、2つ持つようにしたんだぜ☆」

KIFUWARABE_80x100x8

「いいんじゃないか☆」


 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「棋譜学習で、調整しすぎないように 疲れが出る仕組みとして

用意した タイアド・ベクター も外すぜ☆」

KIFUWARABE_80x100x8

「どんどん すっきりさせようぜ☆!」


02:32

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ここで きふわらべ と一緒に棋譜を読んで学習しているんだが、

変なバグがあったんだぜ☆」

KIFUWARABE_80x100x8

「なんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ビットフィールドが 循環参照していたんだぜ☆

プログラムにすると、こんな感じ☆」

 

public ulong Bitfield{ get{ return this.Bitfield;} }

private ulong bitfield;

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「まあ、要するに エラーがあるわけなんだが、

きふわらべとの対局中には 1回もエラーにならなかったんだが、

棋譜の学習をし始めるとエラーになったんだぜ☆」

KIFUWARABE_80x100x8

「どういうことなんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「キャッシュでも残っていたんだろうか☆

なんども バグがないか確認していたのに、

コンパイルが取っていない古いコードを バグ確認してても、意味ないよな☆」


 

02:35

201510160232

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「これが 現在の 棋譜学習画面だぜ☆」

KIFUWARABE_80x100x8

「ほう☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「教師の指し手には、二駒関係の点数をプラスしているんだぜ☆」


03:15

201510160315

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「教師の指し手に 点を割り振っときゃいいと思っていたんだが、

バッドな指し手を 減点する必要もあるんだななんだぜ☆wwwwww」

KIFUWARABE_80x100x8

「駒割の差を プラスで逆転する前に カウンターストップしてしまったのか☆wwww」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「壊れているボタンを直そうぜ☆wwww」

 


03:45

201510160344

KIFUWARABE_80x100x8_02_Hidosu

「ぼーうぼーう☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「きふわらべ が、ログを吐き出して 長考に沈んでしまったぜ☆

なにかまずいものでも 食べたかななんだぜ☆?」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「エラー・ログも 整理整頓しようぜ☆wwwww」


04:05

201510160405

KIFUWARABE_80x100x8_02_Hidosu

「ぼーうぼーう☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こんなエラーがあるのか☆」


04:11

201510160411

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「多分ここらへんでエラーが起きたんだろう☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「えらく独断的なエラーの探し方なんだぜ☆wwwwwwwwwww」


04:28

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「簡単な対処をしておいたぜ☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「どんな対処なんだぜ☆wwww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そろそろ、きふわらべにも 評価値を出してもらいたいよな☆」

KIFUWARABE_80x100x8

「おう☆ 出したいぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「score コマンドを使うと、評価値を出せるみたいなんだぜ☆

これを使ってみようかと思うんだぜ☆

今勉強中だぜ☆」


04:34

201510160433

KIFUWARABE_80x100x8_02_Hidosu

「ぼーうぼーう☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「角頭を2回ぐらい守ったのは上出来なんだぜ☆!ww

そこから 自分で角頭を崩してしまったのは、敗着だったな☆」

KIFUWARABE_80x100x8_02_Hidosu

「どうなってるんだぜ~☆!」


06:19

201510160619

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「きふわらべに、評価値表示を実装したぜ☆!

どんどん 将棋コンピューターらしくなっていくな☆!(^▽^)」

KIFUWARABE_80x100x8

「ほーほ☆! ほーほ ほーほ☆! ほーほー☆! やったぜ☆!\(^▽^)/」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「おお☆ きふわらべも 一応 評価値がよくなるように指しているのか☆」

KIFUWARABE_80x100x8

「当然なんだぜ☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「目に見えてわかるようになったな☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「評価値が見えると、なんだか どんどん 強くしていけそうだぜ☆!」


06:41

201510160640

KIFUWARABE_80x100x8_02_Hidosu

「ぼーうぼーう☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よしよし☆

王が5段目に上がって やった☆! と思っている間に 飛車を取られてしまったんだぜ☆

どんな感じに修正していけばいいのか、目安が見えてきそうなんだぜ☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「駒がタダだとか、

大駒に駒を当てて急かすとか、紐付きとか、今の学習方法では まだまだ

覚えさせられていないみたいだな☆

駒の利きの数ぐらいは 評価関数に復活させてもいいんじゃないか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あの関数良かったよな☆

その評価関数は復活させようかな☆ また今度だぜ☆」

KIFUWARABE_80x100x8

「おう☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「おーう☆」


 

 

評価値を表示したぜ☆! 進歩 あり なんだぜ☆!

第3回将棋電王トーナメントに向けて、微速微進、遅々前進なんだぜ☆!wwwwww

 

はてなブックマーク - 【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(49) 局面評価部分の見直し☆ww
[`yahoo` not found]
[`yahoo_buzz` not found]
このエントリーを Google ブックマーク に追加
Digg にシェア
Facebook にシェア
reddit にシェア
LinkedIn にシェア
[`evernote` not found]
StumbleUpon にシェア
GREE にシェア
email this
LINEで送る
Pocket

【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(48) きふわらべ集合論の見直し☆ww

2015-10-14 15:04

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「きふわらべの指し手生成には、『きふわらべ集合論』という独自の 変なこと をして

やっているんだが、この きふわらべ集合論 は、『成り』 が見えないという致命的欠陥

があって いろいろ 誤魔化しているんだが、それも限界にきたようなので

抜本的見直し ができるかどうか、様子を見てみたいと思うんだぜ☆」

KIFUWARABE_80x100x8

「おう☆ 見直してくれ☆」


15:09

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「現状のきふわらべ集合論では、0~201 の要素しか存在しないんだぜ☆

これは 升番号 に使っているぜ☆」

KIFUWARABE_80x100x8

「ふむ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「升番号しかないから、位置は示せるけど、成っているのか、成っていないかは

表せないんだぜ☆

プレイヤー1の駒か プレイヤー2の駒かどうかも分からないぜ☆」

KIFUWARABE_80x100x8

「升番号の変わりとして きふわらべ集合論 を使っているな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「駒の移動を表すときは、升番号だけではなく、成りか、成らずかも

一緒に表したいよな☆」

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「ビットフィールド……☆www」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「しかし、ビットフィールドを使うのは なにか負けた気がするな☆」

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「何と戦っているんだぜ☆wwwwwww」


 

15:15

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「0~201個の升は、このように 202個の constを使った定数として 定義していたんだが……☆」

201510141516

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「吹く☆wwwwwwwwwwwwwwww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「この Basho の1つ1つは、

『成らずのみ』、『成るのみ』、『成らず、成るの両方可』の3状態を

持って欲しいんだぜ☆

  • ban11_1一_Z = new Basho(0, 成らず) // naraZu
  • ban11_1一_R = new Basho(0, 成る) //naRu
  • ban11_1一_RZ = new Basho(0, 成る|成らず) //naRu,naraZu

みたいな☆」

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「wwwwwwwwwwwwwwwwwwwwww☆

一般化できるのかなんだぜ☆wwwww?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「可能性を表現する素子だぜ☆

成るか、成らないかを表現する、理想特性を持った升だぜ☆」

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「そんなにビットフィールドが嫌なのかだぜ☆wwwwwwwwwwwww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ビットフィールドを使うと、ボナンべ になってしまうぜ☆

きふわらザ を目指すんだぜ☆」


15:26

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ここで、 成る、成らない、両方、 を enum型や、フラグや、int型で持ってしまうと、

結局 if文や switch文を使うはめになって、

全然 楽にならないんだぜ☆

そこで、まだ観察されていない状態 『成る/成らず両方』 は、

『成る』と『成らず』の2つに変換するメソッドを用意したいぜ☆

1つだった要素を、2つの要素に等価交換するわけだな☆

ふむ……enum型を使うか☆」

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「将棋にしか使えない部品だな☆wwwwwwwwwwwwww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「しかし、『成る/成らず』は、『成る』と『成らず』に変換できるが、

その逆は 必ず成り立つというわけではないな☆

例えば 1四の升。これは 『成らず』 なんだが、

『成らず』 を 『成る/成らず』 に変換できるわけではないな☆

そこで、5状態 はあることになるぜ☆

  • 成らずしかない
  • 成るしかない
  • 成っていない
  • 成っている
  • 成りか成らずのどちらか

の5状態だぜ☆

上の2つと、下の3つは、状態遷移が完全に独立した別グループだぜ☆」

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「wwwwwwwwwwwwwwwww☆

お父ん、202個の定数が 1010個になってしまうぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「ぬっ☆ むぎぎ、うむむむむむむむむ☆!」

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「あとで、やっぱ プレイヤー1/プレイヤー2 も記憶したい、

と思ったときに、 定数が 2020個 になってしまうぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「ぶっ、ぶくぶくぶくぶくぶくぶくぶくぶくぶくぶくぶくぶく☆(^q^)」

KIFUWARABE_80x100x8

「さあ、ボナンベになろうか☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「うーん、」 (バタンッ)

 


15:40

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ひとまず、現在の 定数202個 というのは 先見性のない手法なので、

この202個の定数は、そのまま 升番号 専用の用途にシフトしたいと思うぜ☆」

KIFUWARABE_80x100x8

「ふむ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うん? 等価の Basho インスタンスが 山ほど作られることになるな☆

HashSet<Basho> でも作って、生成したインスタンスを重複して生成しないように

保管して再利用する必要が出てくるぜ☆

BashoWhole クラスでも作るか☆?」

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「いくぶん、定義がオートになるだけで、

メモリ上に 2020個 のインスタンスが作られることには変わりないな☆wwwww

升番号が202個でよかったな☆ 50000個の升があるゲームには

現実的に対応できないぜ☆www」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「むむむ☆ ビットフィールドを使うしかないか……☆

HashSet<uint> みたいな☆」


15:50

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「Basho クラスは廃止だな☆wwww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あっ☆ 素子は、自分の名前を言う必要があるぜ☆!

Dictionary<uint,string> bashoDictionary; 変数を作って、名前を覚えさせておくか☆

Masu_Honsyogi クラスにこの変数を持たせておくかなんだぜ☆」

KIFUWARABE_80x100x8

「現在の実装を、なるべくインターフェースを変えずに

リプレースしようぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よし☆ Masu_Honshogi クラスに代替メソッドをどんどん用意していくか☆

まず Masu_Honshogi.Equals( a, b ) だな☆

古いBasho は、Old_Basho、

新しいメソッドに置き換えられたものは New_Basho クラスにして、

New_Basho をベースクラス、Old_Basho を派生クラスにして、

ソースコードから Old_Basho をどんどん消していくぜ☆!」

KIFUWARABE_80x100x8

「おう☆!」

UEUESHIMA_Komado_80x80x8_02_nitaari

「おう☆! ゆくゆくは ビットフィールド化だな☆wwww」


16:19

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Basho の実体は、ほとんど Basho.masuNumber 変数の利用だな☆」


16:25

201510141625

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こんな感じで、定数を、原点になる定数+整数 の形に置換していく準備を

進めるぜ☆」

KIFUWARABE_80x100x8

「おつ☆」


17:07

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あれ☆? イコールの判定で 別物扱いされてしまうぜ☆

要調査だぜ☆」

201510141713

 

201510141715

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「オブジェクト同士の判定だと、イコールじゃないと判定しているのだろうか☆?

Equalsメソッドは作ってみたものの……☆」


17:27

201510141727

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こうすると、直るのな☆」

KIFUWARABE_80x100x8

「怪しい☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「怪しいぜ☆」

 


19:41

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「次は、 masu1 == masu2 とかしている場所があると思うので、これを

Masu_Honsyogi.Basho_Equals( masu1, masu2 )

みたいな形に置き換えていきたぜ☆」

KIFUWARABE_80x100x8

「どんどん やってくれ☆」


19:56

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「次は 成る、成らないの5段活用を Basho クラスの中に入れたいぜ☆

Unknown を入れて、6段活用にしておくか☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「おっ☆ 順調なのか☆ 意外だな☆ww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「その前に 飯にするか☆」



22:03

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よーし、次は ビットフィールド の準備をするぜ☆」

KIFUWARABE_80x100x8

「どういう心変わりだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Dictionary<ulong, string> を作ろうと思ったんだぜ☆

升番号と、成る/成らない の2つの要素があると 1つのDictionary に

まとめられないからな☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「ビットフィールド、便利だろ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「データベースのクエリーでもあれば 複数要素でも良かったんだが☆」


22:06

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「升番号は 0~201の202個なので、

8bit、つまり 0~255 あれば足りるな☆

ulong の下位 8bit を升番号に当てるぜ☆」

KIFUWARABE_80x100x8

「おう☆ どんどんやろうぜ☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「やっと納得したか☆wwwwwwww」


22:11

201510142211

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こういう感じで書き換えればいいのかなんだぜ☆?

ビット演算とか、もう十何年ぶりかわからないぜ☆wwww」

UEUESHIMA_Komado_80x80x8_02_nitaari

「コンパクトになるぜ☆ww」


22:15

201510142214

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あれ☆? バグッたぜ☆?」

KIFUWARABE_80x100x8_02_Hidosu

「ぼーう、ぼーう☆!」

UEUESHIMA_Komado_80x80x8_04_achaa

「符号が間違ったんじゃないか☆?

アンサインドと、サインド、

ロングと イント

のあたりを見直そうぜ☆!」


22:18

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「もしかして、 0x って、16進数☆?」

UEUESHIMA_Komado_80x80x8_02_nitaari

「そういえば、そうだったぜ☆ww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「16進数で 256 は、 0xff だっけ☆?」

KIFUWARABE_80x100x8

「おkおk☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「やり直し☆www」


22:56

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「順調だぜ☆ww」


22:58

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「あへ~☆! きふわらべ集合論の『Equals』が機能しなくなるぜ☆!」

UEUESHIMA_Komado_80x80x8_03_jitoo

「☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 1一 = 1一 は、以前までは真なんだが、これからは

1一成り = 1一成らず で、偽になる可能性があるぜ☆」

UEUESHIMA_Komado_80x80x8_03_jitoo

「イコールが 一般的でなくなるのか☆

  • 升だけイコール
  • 升と成りもイコール

など、演算子も 指定が必要になるのか☆」

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「どうしようなんだぜ~☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「ラムダ式で、比較判定プログラムを渡したらどうだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「……☆ やってみるか☆」

 


23:14

201510142313

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こういう感じで、2つの引数と、1つの関数を引数にとるメソッドを作っておいて……☆」

201510142316

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「渡されたメソッドを呼び出すだけ☆ なんか変だぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「要素が BynaryOperate メソッドを持っているからおかしいんだぜ☆

演算が BynaryOperate メソッドを持ってないと、おかしいぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あっ、そうか☆」

201510142322

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「集合の方に デリゲートを定義して……☆」

201510142323

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「2要素を比較するメソッドを用意して……☆」

201510142324

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「実装っと☆ なんか変だぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「作り方はそれでいいんだぜ☆

比較が必要になったときに、この作り方を応用するんだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ふむ……☆」

 


23:33

201510142333

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「例えば、こういうとこだな☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「イコールの一般的なメソッドを作ってみようぜ☆」


23:45

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こういう感じなのかだぜ☆?」

201510142344

UEUESHIMA_Komado_80x80x8_02_nitaari

「良い調子だぜ☆

さっきの Minus_Closed( ) メソッドの第二引数に、

升番号をイコール比較する、デリゲート・メソッドを渡すようにしようぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Minus_Closed( ) は、升番号のイコール比較と 決まりきっているから、

埋め込んでも良さそうだぜ☆」

KIFUWARABE_80x100x8

「ふむ……、さて どうなるか☆」



 

2015-10-15 00:29

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「通信の遮断をくらって、在宅バイトの家賃収入終わったかと思ったぜ☆

using の関係で埋め込めなかったので 引数で デリゲート・メソッドを渡すことにするぜ☆」

KIFUWARABE_80x100x8

「うむ☆」


00:40

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ふむ……、動いているぜ、ほんとかいな☆」

KIFUWARABE_80x100x8

「自分でプログラムを書いて、何 疑っているんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こんなに すんなり行くなんて、何を見落としているのかなんだぜ☆?」

UEUESHIMA_Komado_80x80x8_02_nitaari

「どんどん すんなり行こうぜ☆wwwwwwwwwwww」


01:05

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「きふわらべ集合論は、要素が名前を持っていることが特徴の1つだったんだが、

これを Dictionary<ulong,string> という形で ビットーフィールドをキーにして

名前を取り出す形に変えるぜ☆」

KIFUWARABE_80x100x8

「どんどん変えていこー☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「きふわらべ集合論の要素を、完全に、ビットフィールドに置き換えるわけだな☆ww」

 


02:22

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うーむ☆ bitfield→word の取り出しは、

派生クラスで using できるように基礎的なクラスに作っておいた方が良さそうなんだぜ☆」


02:32

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「はあ~☆ 集合論の要素に bitfield を1つだけ持たせるように改造しよう、

そうしようなんだぜ☆」

KIFUWARABE_80x100x8

「どんどんしようぜ☆!」


03:31

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ビットフィールドに だいぶ置き換えが進んだぜ☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「順調だな☆」

KIFUWARABE_80x100x8

「なんかメリットは出てきたのかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「まだないぜ☆ ビットフィールドに1個のプロパティしか詰め込んでないので☆」


03:38

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「これから、Basho と、masuNumber は別物になってくるんだな☆

Basho には、成る、成らない情報も付けていく予定だし☆

升番号が欲しいところには、Basho は使ってはいけないな☆

改造だぜ☆」

KIFUWARABE_80x100x8

「おつ☆」


04:07

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「順調だぜ☆ 飯にするぜ☆」

KIFUWARABE_80x100x8

「おう☆」


04:51

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「飯を食いながら ビットフィールド化を進めたぜ☆

とりあえず ここまで☆」

KIFUWARABE_80x100x8

「何かパワーアップしたか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「それが、ちょっと不思議な パワーアップの仕方をしたぜ☆

5手を過ぎたあたりから、指し手が早くなるんだぜ☆」

KIFUWARABE_80x100x8

「おおっ☆!」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「初期化が重いのかなんだぜ☆www」


05:10

201510150510

KIFUWARABE_80x100x8_02_Hidosu

「うわあああああああ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「God-depth5☆? 怪しい名前だぜ☆

きふわらべに指し手が似ているのが出てきたな☆

5手読みで、しかも早指しという☆

香車を1マスずつ上げるところとか、昔の きふわらべにそっくりだぜ☆

評価値が出ないところも 今の きふわらべにそっくり☆」

 

UEUESHIMA_Komado_80x80x8_02_nitaari

「本家 きふわらべも もっと高速化しようぜ☆wwwww

5手読みにしようぜ☆wwwwwww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うむー☆」


05:23

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「早指しを目指して、役に立っていない いろんな機能を外してみるぜ☆」

KIFUWARABE_80x100x8

「おう、頼むぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「やる気になってきたかなんだぜ☆www」


07:26

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「役に立ってないコードを バンバン 削っていったんだが、

全然 指し手 早くならないな☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「OFFにしてある機能を削ってるからじゃないのか☆wwww」


07:42

201510150742

KIFUWARABE_80x100x8_02_Hidosu

「Zzzz」

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「Zzzzzzz」

KITASHIRAKAWA_Chiyuri_80x100x8_02_Hidosu

「Zzzzzzzz☆」

 

はてなブックマーク - 【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(48) きふわらべ集合論の見直し☆ww
[`yahoo` not found]
[`yahoo_buzz` not found]
このエントリーを Google ブックマーク に追加
Digg にシェア
Facebook にシェア
reddit にシェア
LinkedIn にシェア
[`evernote` not found]
StumbleUpon にシェア
GREE にシェア
email this
LINEで送る
Pocket

【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(47) 途中の局面から始められるように目指そうぜ☆ww

2015-10-13 23:41

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「打ち歩詰めのアルゴリズムは、バグっているので OFF にしておくぜ☆」

KIFUWARABE_80x100x8

「修正は また来年かもしれないな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「さて、途中の局面から対局を再開する機能なんだが、

作っているつもりなんだが 動いていないので 調査だぜ☆」

KIFUWARABE_80x100x8

「よろしく頼むぜ☆」


00:12

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「きふわらべGUIでは、

対局開始時には ShogiEngineVsClientImpl.Start( ~ ) で、

将棋エンジンを起こすようにしているぜ☆

このときは ”usi” メッセージを送るぐらいなもので、

盤面の情報とかは送ってないぜ☆」

KIFUWARABE_80x100x8

「寝起きに牛の目覚ましはきついぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「GUI上で 最初の一手を指したときに、手番が変わるわけだが、

この手番が変わったことを合図に、通信を行っているぜ☆」

 

ShogiEngineVsClientImpl.OnChangedTurn( ~ )

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「このとき、”position” と、”go” メッセージを将棋エンジンに送っているわけだが、

途中の局面を見てくれてないのかなんだぜ☆?」

KIFUWARABE_80x100x8

「そこだな☆ 調べてみようぜ☆」

 


00:21

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「きふわらべの 棋譜の学習も進めようぜ☆ フラッドゲートで遊ばせたいし☆」

KIFUWARABE_80x100x8

「おう☆!」

 


02:18

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「と金って、金扱いだっけ☆? 歩扱いだっけ☆?」

KIFUWARABE_80x100x8

「歩じゃないのか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「それだとなんだか おかしくなりそうなんだぜ……☆?」

201510140222

 


04:07

201510140222

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「桂不成の評価が、桂成の評価を上回らないぜ☆wwww

桂不成の評価が上がった分、桂成の評価も上がるので、ずっと駒割の差が

キープされてしまうんだぜ☆wwwwwwwwwwwwwww

はまりだぜ☆wwwwwwwwwwwwww」


04:13

201510140413

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「成り桂の横移動が 合法手リストに無いんだぜ☆wwwww

はまりだぜ☆wwwwwwwwwwww」

201510140415

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そしたら、バグになるのも当然だぜ☆wwwww」

 


04:34

201510140433

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「長考に沈んで、指さなくなるのも、バグなんだろうなあなんだぜ☆」

201510140435

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「と、思ったら王手だぜ☆

王手をされたら、その駒を取るしかないので、その分、自分の王手は後回しになるな☆ww」

 


05:01

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「と金が 動く手も、合法手リストにないぜ☆

このあと 強制終了するぜ☆」


06:39

201510140639

KIFUWARABE_80x100x8_02_Hidosu

「ばふっ☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よしよし☆ 角頭を守るのには慣れてきたみたいだな☆

そのうち、そのあとにどうするのかも学習していこうぜ☆」

KIFUWARABE_80x100x8

「おう☆!」


 

二駒関係は そこそこ働き出してきたんじゃないか☆? 進歩 あり なんだぜ☆!

第3回将棋電王トーナメントに向けて、微速微進、遅々前進なんだぜ☆!ww

 

はてなブックマーク - 【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(47) 途中の局面から始められるように目指そうぜ☆ww
[`yahoo` not found]
[`yahoo_buzz` not found]
このエントリーを Google ブックマーク に追加
Digg にシェア
Facebook にシェア
reddit にシェア
LinkedIn にシェア
[`evernote` not found]
StumbleUpon にシェア
GREE にシェア
email this
LINEで送る
Pocket

【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(46) 打ち歩詰めの判定って、どうやってプログラミングすればいいのかなんだぜ☆?

2015-10-12 11:03

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「打ち歩詰め判定って、どうやって……プログラミングしよう……☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「れさ改では どうやっているんだぜ☆?」

KIFUWARABE_80x100x8

「歩を打つ手なら、局面を動かしてみて、

その打った歩に自分の利きがあって、

歩を取る駒の動きを一覧してみて、王様でしかその歩を取れる駒がなくて、

王様に逃げ道がなければ打ち歩詰めだぜ☆

動かした局面は 元に戻すぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「きふわらべも、そうやってくれよう☆」

KIFUWARABE_80x100x8

「なんのことだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「…………☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「1つ1つ解決していこうぜ☆ww」


11:09

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「もし、打ち歩詰め を判定できたら、

歩を打つという指し手を 合法手の中から 1つ削除するだけで

オッケーかな☆ ステイルメイトなら負けでいいな☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「いいんじゃないかなんだぜ☆?」


 

11:16

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「合法手を作っているのは、深さ優先探索の最中だな☆

次の一手を調べるループの直前に、動かす駒別の移動先一覧を作っているぜ☆」

KIFUWARABE_80x100x8

「持ち駒の移動先を一覧にするプログラムがあるぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「わたしの造語で、ポテンシャル・ムーブだな☆

障害物がなかったときの駒の動きだぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「二歩チェックをやっている場所があるじゃないか☆

ここらへんで 打ち歩詰め チェックもできないのかなんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「やってみるか☆

まず、相手の玉の位置を調べるぜ☆」

 

                    // 相手の王の位置
                    RO_Star king_aite;

                    switch (src_Sky.KaisiPside)
                    {
                        case Playerside.P1:
                            king_aite = Util_Koma.AsKoma(src_Sky.StarlightIndexOf(Finger_Honshogi.GoteOh).Now);
                            break;
                        case Playerside.P2:
                            king_aite = Util_Koma.AsKoma(src_Sky.StarlightIndexOf(Finger_Honshogi.SenteOh).Now);
                            break;
                        default: throw new Exception("エラー:打ち歩詰めチェック中。プレイヤー不明。");
                    }

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「打った歩の位置が、相手の玉の頭かどうかを調べる必要があるな☆

『れさ改』なら、 -1 とか、+1 すれば 升番号が揃うんだが、

きふわらべでは 『升は空間的につながりがない』 という思想なので、

そういう書き方はせずに 駒の利きを調べるメソッドを仲介するんだぜ☆」

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「吹くのを我慢しなければならない☆wwwwwww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「KomanoKidou というクラスがあるので、これで玉頭を調べるんだぜ☆

『DstIppo_上』 という位置が 玉頭に当たるんだぜ☆」

 

                    // 相手の玉頭の升。
                    {
                        SySet<SyElement> sySet = KomanoKidou.DstIppo_上(pside_aite, king_aite.Masu);
                        SyElement element1 = null;
                        foreach(SyElement element2 in sySet.Elements)//最初の1件を取る。
                        {
                            element1 = element2;
                            break;
                        }
                    }

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「書きかたが変なんだが、とりあえずこれで☆」


12:07

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「自分の駒が置いてある升は分かるんだが、

自分の駒が利いている升を調べるのは 一苦労なんだぜ☆」

KIFUWARABE_80x100x8

「調べようぜ☆」


13:12

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「相手の玉頭に、味方の利きがあるかどうかまでは 調べたぜ☆

次はなんだっけ☆?」

KIFUWARABE_80x100x8

「玉頭の歩を取れる相手の駒を一覧するんだぜ☆

相手の王しか 歩を取れないのか、どうかだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「むっちゃ大変だな☆ やってみるか☆」


13:24

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「それってつまり、相手の玉頭に利きのある、相手の盤上の駒ということなのかなんだぜ☆?」

KIFUWARABE_80x100x8

「そうじゃないのか☆?」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「さっき書いたプログラムの 1プレイヤーと 2プレイヤーを逆にすればいいんじゃ

ないかなんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うっ☆ そんなこと考えずに書いていたんだが、やってみるかなんだぜ☆」


14:48

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「プログラムの部品がいろいろ使いづらいので、変更中だぜ☆」

KIFUWARABE_80x100x8

「おつ☆」


15:31

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「打ち歩詰めチェックをやっている Play クラスは P259 なんだが、

駒の利きを調べる Util_KyokumenMoves クラスは P363 なんだぜ☆

駒の利きを調べる方法を 考え直すぜ☆」

KIFUWARABE_80x100x8

「うむ☆」


17:27

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「相手の玉頭に利きのある、相手の駒の一覧を調べたぜ☆

めっちゃ大変だったぜ☆ww」

KIFUWARABE_80x100x8

「おつ☆

次は、そのリストの要素が1つで、それが玉の場合かどうかを判定するんだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よーし☆ 判定しちゃうぞ☆!」


17:34

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「打たれた歩を取れるのが、王様1つしかないか、そうでないかを判定したあとは、

どうするんだぜ☆?」

KIFUWARABE_80x100x8

「王様に逃げ道があるかどうかを判定するんだぜ☆ これが最後だぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「大変すぎるぜ☆ つらい☆ やってみるぜ☆」


17:39

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「攻撃側の利きが利いている升って、どうやって調べるんだぜ☆

調べるぜ☆」


17:57

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よし、書いたっと☆ どうやってテストしようか……☆」

KIFUWARABE_80x100x8

「指定局面の続きからテストする機能は?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「きふわらべGUIには無いぜ☆?」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「将棋所を使ってはどうかな☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「調べてみるか☆」


18:00

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ユニットテストを書いてテストした、というブログ記事もあるんだぜ☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「言われてみれば、その通りなんだぜ☆」


 

18:40

201510121839

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「あっ☆! 作ってないぜ☆!」

UEUESHIMA_Komado_80x80x8_01_futu

「途中の局面から開始する機能は必須だぜ☆

startpos じゃない方の sfen で始まる盤面の方も

作ろうぜ☆」


18:48

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

ふー☆! 休憩☆! 休憩だぜ☆!

KIFUWARABE_80x100x8

「おう☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「www☆ うまいものでも食べてくるのかなんだぜ☆ww」



 

22:54

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「飯のついでに 在宅バイト を終わらせておいたぜ☆wwww

これで安心して眠れるな☆wwwww」

KIFUWARABE_80x100x8

「途中の局面から始められるパーサーを作ってくれよう☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よしよし、少し見てみようかなんだぜ☆」


23:14

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「genjo.InputLine という変数の中に、ちょうど 『sfen ~盤上~駒台』の

文字が入っているんだぜ☆

これを まるごとパースできれば、うまく行きそうなんだが☆

以前に作ったプログラムが どこかに残っているかどうか調べてみるぜ☆」

 


23:55

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「パーサーは有ったんだが、なぜか Kyokumen1、Kyokumen2 と種類が分かれていて

2つあるので、何でわたしは そんな作りにしたのか、調べ中だぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「自分に聞いて、教えてもらったらどうだぜ☆wwwwwwwwwww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「わたしも、自分に聞きたいぜ☆!」


23:59

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「はあ☆! 盤を、suji×dan の二次元配列として持つか、

それとも 0~80 の升番号で持つかの違いみたいだな☆

持ち方が2つあると何か便利なのかもしれないが、2つあるのは気持ち悪いぜ☆

どっちか よく使っている片方に 統一したいぜ☆」


2015-10-13 00:06

KIFUWARABE_80x100x8

「局面2から、局面1へは変換可能なんだな☆

よく使われているのは、局面2 の方だぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「局面1って、何のためにあるんだぜ☆」

KIFUWARABE_80x100x8

「文字列出力するときに使っているな☆

sfen ~/~/… 指し手… の、あれ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「はー☆ Output用に解凍するのに使っているのか☆

ForFormat とでも言う感じだな☆」

 


0:14

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「局面1は、フォーマット用で、二次元配列なんだが、

局面2は、プロパティ1つ1つに アクセッサー・メソッドを用意しているんだな☆

トークンナイズ用かな☆」


0:16

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 Conv_Sfenstring.ToKyokumen2( ) みたいな感じで

sfen ~/~/~/ 持ち駒 文字列 をパースできそうだぜ☆」

KIFUWARABE_80x100x8

「やってみようぜ☆」


0:27

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 『局面2』というデータ構造を、『SkyConst』というデータ構造に置換できれば

できあがりなんだが、どうやって やろうかなんだぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「既存のソースコードを調べてみようぜ☆」


0:29

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あっ☆ 大変だぜ☆

Conv_Sfenstring というクラスが2つあるぜ☆

片方は、欲しかったやつだぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「wwww☆」


00:59

201510130059

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「解析後の部分は、処理を委譲しているんだぜ☆」

UEUESHIMA_Komado_80x80x8_09_Nikoniko

「どういうことなんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「解析結果が出ました、この結果をどう使いますか、

という風に 用意されているので、

その解析結果を利用するプログラムを 指定しておかないと、

何もしないんだぜ☆

将棋サーバーを模しているGUIには そのプログラムの指定があるんだが、

将棋エンジンきふわらべでは、指定してないかもしれないんだぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「指定しようぜ☆ww」


01:03

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「GUIでは、Util_InServer.ReadLine_TuginoItteSusumu_Srv( ) を使って

棋譜パーサーA を実行していて、このとき

処理の委譲先プログラムを指定しているんだぜ☆」

201510130107

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「将棋エンジンきふわらべ では どこで 棋譜パーサーAを実行しているかな☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「USIの2番目のループ内の position コマンドを受け取ったときかなんだぜ☆」

201510130108

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「委譲先のプログラムを指定していないな☆

委譲先のプログラムでは、棋譜ツリーをクリアーして、指定の局面を盤面に作っておく、

といった処理が 望ましいぜ☆」

KIFUWARABE_80x100x8

「サーバー側で、すでにあるやつを持ってきて改造しようぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「また 今度だな☆ 今日はここまでだぜ☆」

UEUESHIMA_Komado_80x80x8_02_nitaari

「おつ~☆」

KIFUWARABE_80x100x8

「おつだぜ~☆」


 

打ち歩詰め対策と、途中の局面から検討の機能の両方に 着手あり だぜ☆!

第3回将棋電王トーナメントに向けて、微速微進、遅々前進なんだぜ~☆!

 


 

02:59

201510130258

KIFUWARABE_80x100x8_02_Hidosu

「ぼーうぼーう☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「……☆! うーん☆?」


03:39

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ShogiGui_Base インターフェースや、ShogiGui_ForKifuParserAImpl クラスは不要なんじゃないか☆?

ラッパーになっているんだが、

中身の Model_PnlTaikyokuImpl だけでいけるし☆

今度見直すんだぜ☆」


04:16

201510130416

 

KIFUWARABE_80x100x8_02_Hidosu

「ぼーうぼーう☆!」

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「きふわらべの王様、動かなくなっちゃったんだぜ☆!

打ち歩詰めプログラムが悪さしているのかな、なんだぜ☆?

一時的に外せるように改造してみるか☆」


04:39

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あー☆ 駒割なんだが、後手は マイナスの方がグッドだということを忘れていたぜ☆

後手の歩は -100点 な☆ 修正しとくぜ☆」

KIFUWARABE_80x100x8

「サンキューなんだぜ☆」


04:42

201510130442

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「千日手模様は、怪しいながらも回避したぜ☆ww

これで十分なんじゃないか☆www」

KIFUWARABE_80x100x8

「やったぜ☆!」


05:01

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「打ち歩詰め対策を外すと うごきが良くなったので、

やっぱり 打ち歩詰め対策のプログラムは

間違っているんだろうななんだぜ☆

しばらく外しておくぜ☆」

KIFUWARABE_80x100x8

「おう☆」


05:24

201510130523

 

KIFUWARABE_80x100x8_02_Hidosu

「どべふっ☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_02_Hidosu

「あー☆ 3手読みだと そう受けるかなんだぜ~☆

玉が反復移動してたのも どうにかしたいぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「でも、大きな進歩だな☆」

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「wwwwwwwwwwwwww☆ ポジティブ思考だな☆wwww」


05:48

201510130548

KIFUWARABE_80x100x8_02_Hidosu

「へろちょん☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「60手まで指せるようになったじゃないか☆

大進歩だぜ~☆ww!!」

UEUESHIMA_Komado_80x80x8_07_piririUmauma

「wwwwwwwwwwwwwwwwwwwwwww☆」


 

 

はてなブックマーク - 【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(46) 打ち歩詰めの判定って、どうやってプログラミングすればいいのかなんだぜ☆?
[`yahoo` not found]
[`yahoo_buzz` not found]
このエントリーを Google ブックマーク に追加
Digg にシェア
Facebook にシェア
reddit にシェア
LinkedIn にシェア
[`evernote` not found]
StumbleUpon にシェア
GREE にシェア
email this
LINEで送る
Pocket