【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(14) 一手指すルーチンの見直し☆ww

2015-09-04 20:51

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「きふわらべの 『指し手データ』 というのは、次の内容を持っているんだぜ☆」

  • 指す前の駒
    • 駒の種類(歩~竜、エラー含む15種類)
    • 先後
    • 升番号(駒台や駒袋にも番号が振ってある。0~201の202升)
  • 指した後の駒
    • ※「指す前の駒」と同じデータ構造
  • 取った駒の種類

 

KIFUWARABE_80x100x8

「ふむ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「これは、『巻き戻す』ボタンを使えるようにするためのデータ構造なんだぜ☆

バトルや、学習だけやるのなら邪魔なんだが、構わず こうしている☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 『一手指すルーチン』は、この『指し手』の他に、一手指す前の『局面データ』と、

一手進めるのか、巻き戻すかのフラグ1つを 入力として引数に取るんだぜ☆」

KIFUWARABE_80x100x8

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


21:08

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 『一手指すルーチン』は、その実行後、5つのデータを 成果として返すんだぜ☆」

  • 指した駒の番号。
  • 取った駒があれば、取った駒の番号。
  • 取った駒があれば、取った駒の種類。
  • 終了ノード。「進む」ときは、一手指す局面の「指した後」のツリー・ノード。「巻き戻す」のときは、ヌル。
  • 終了ノードの局面データ。

KIFUWARABE_80x100x8

「もやっとしているな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「構造を見直してみるぜ☆」


21:19

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「きふわらべの 『棋譜ツリー・ノード』 というのは、内容を3つに大別できるぜ☆」

  • 指し手データ(きふわらべ式)
  • 局面データ
  • これから指す手番の先後

KIFUWARABE_80x100x8

「 『棋譜ツリー・ノード』 じゃなくて、『局面データ』だけが欲しいんだが、

『進む』『巻き戻す』の機能のうち、『巻き戻す』の方で 『指し手データ(きふわらべ式)』も

一緒に返す仕組みになっているから、要らないデータも付いてくるんだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 『進む』『巻き戻す』は別メソッドに分けるか☆」


22:04

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 『進む』『巻き戻す』 は別メソッドに分けたんだが、

『棋譜ツリー・ノード』は 何手済み目かを調べるのに

本譜を 現在ノードから ルート・ノードまで走って 数を数えるのに使われていて、

 

『進む』『巻き戻す』 を別メソッドに分けたからといって、

『棋譜ツリー・ノード』は 省けないぜ☆」

 

KIFUWARABE_80x100x8

「何手済み目かを調べるのに、わざわざ 『棋譜ノード・ツリー』を作成する仕様なのか☆」

KIFUWARABE_80x100x8

「何で、『何手済み目』を調べているんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 『ルート・ノード』か、そうでないかを調べたかっただけだぜ☆」

KIFUWARABE_80x100x8

「ツリー構造を見れば、Parentプロパティがヌルだったら、それがルートだと判別できるだろう☆

IsRoot( ) メソッドを作ろうぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「全くその通りだぜ……☆!」


22:32

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「IsRoot( ) を作って、それを使うようにしたぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 『一手指す』ルーチンから、『棋譜ツリー・ノード』を省かないと やっぱり不便なんだぜ☆

棋譜なんかなくても、『局面データ』 1枚だけで 一手指したいんだぜ☆www

もっと分解してみよう☆www」


23:39

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「プログラムのどこかで、『親ノード』『子ノード』を見にいっているのか、

『棋譜ノード・ツリー』 が無いと、『一手指しルーチン』 が動かないんだぜ☆」

KIFUWARABE_80x100x8

「日本将棋連盟式の棋譜の符号を作るときは 『棋譜ノード・ツリー』 を使っているぜ☆

同歩、とか書くためには、1手前の局面を知ってないと 『同』 とは書けないからな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「ぶくぶくぶくぶくぶくぶく…」


23:58

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 『棋譜ツリー』 が無ければ、 『一手指すルーチン(きふわらべ式)』 も動かない、ということで

ファイナル・アンサー☆?」

KIFUWARABE_80x100x8

「ファイナル・アンサー☆!」


 

2015-09-05 00:01

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「棋譜読取機の 『一手指す』ボタンを押すと、合法手が一覧される☆

その中には、棋譜の指し手も必ずあるので、

『一手指すルーチン』に、棋譜の指し手を 放り込む☆

ここまでは やってみるか☆」


0:07

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「棋譜読取機からは SFEN形式の指し手 は取れるんだが、

きふわらべ形式の指し手 は取れないんだぜ☆」

KIFUWARABE_80x100x8

「変換しろ☆」


00:25

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「棋譜読取機で 『一手指すルーチン』 を実行すると、

その手は既に指されている、みたいなエラーが出るんだが☆」

201509050028

 

KIFUWARABE_80x100x8

「合法手を調べるときに、既に指しておいたぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「ぶくぶくぶくぶくぶくぶく…」


00:40

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「既に指されている手があっても、項目を追加せずに カーソル移動するだけみたいな感じに

改造してみたぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「まだ 20手目の角打ちで、馬を打ち込んでいるバグがあるな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「どうして 馬 を打っちゃうんだぜ☆?」

KIFUWARABE_80x100x8

「ログで取れるといいんだが☆」


00:50

201509050050

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「先手の角の打ち込みは、ちゃんと角を打ち込んでいるぜ☆」

KIFUWARABE_80x100x8

「ゴクリ☆」


00:56

201509050055

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「後手の角の打ち込みは、馬を打ち込んでいるぜ☆」

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「これは前にあったあれだろ、

表と裏をひっくり返すところを、間違えて 先後をひっくり返しているバグ☆

今度は 後手だと 表裏をひっくり返しているんじゃないか☆?」

KIFUWARABE_80x100x8

「直せ☆」


 

01:12

201509050111

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「後手番で 歩を打とうと思ったら、打つこともできずに エラーになったぜ☆www

これは 調査が大変そうだぜ☆ww

せっかく 盤の絵 を表示したんだが、内部データ構造を表していないんだぜ☆wwwww

内部データの駒一覧を リストボックスに 出した方が良さそうだぜ☆wwwwwww」

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「また 次回にしよう☆ww」


 

きふわらべへの 『一手指すルーチン』 は読みやすさの改善は まあ、だいたい あり なんだぜ☆!

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

はてなブックマーク - 【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(14) 一手指すルーチンの見直し☆ww
Bookmark this on Yahoo Bookmark
Buzz This
Bookmark this on Google Bookmarks
Bookmark this on Digg
Share on Facebook
Share on reddit
Share on LinkedIn
Share on StumbleUpon
Share on GREE
email this
LINEで送る
Pocket

【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(13) 一手指すルーチン☆ww

2015-09-02 12:38

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 『一手指すルーチン』を整理するぜ☆ 」


 

15:02

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 『一手指すルーチン』を掃除してみたところ、

  • 棋譜ツリーの 次のノードを作って 現在ノードにぶら下げる。
  • 作った次のノードを、これからの 現在ノードとして扱う (カーソル移動)

の2つを 大きな成果としているな☆」

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ポイントとしては、

  • 『一手指すルーチン』の途中で 現在ノードが変わる
  • 『一手指すルーチン』の途中で 次のノード(=途中から現在ノード)は、状態が変化する

ということがあるぜ☆」

 

KIFUWARABE_80x100x8

「次のように整理できないのか☆?

  • 編集対象のノードがある
  • 『一手指すルーチン』の終了後に 現在ノードが変わる

KITASHIRAKAWA_Chiyuri_80x100x8_03_Ahee

「うむむ☆! そんな風に作りたいぜ☆!」


15:14

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「何考えて こんな複雑なプログラムになってるのか わかったぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 『現局面』 という言葉があるんだが、現局面って、一手指し終わったら変わるな☆

『現局面』 という言葉を使わず、

  • 『一手指し開始局面』
  • 『一手指し終了局面』

という2つの言葉を使えば いいような気がしてきたぜ☆」

 

KIFUWARABE_80x100x8

「 『現』なんていう時間指示語を使うから プログラムが動物になって走り回って

スケッチしづらくなるんだぜ☆

 

時間を指示しない変数名にすることだぜ☆

山のような静物ならスケッチもしやすいだろう☆」

 

KITASHIRAKAWA_Chiyuri_80x100x8_03_Ahee

「そうするぜ☆!」


15:31

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ルーチンの途中で ゲット・カレント() をするから

プログラムが動物になってしまうのか☆

ゲット・カレント()を プログラムの途中でやらないように要注意だな☆」

 


15:40

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「さらに混乱の元になっているのが、『一手進む』『一手戻す』を同じ関数で

やっているからなんだぜ☆」

KIFUWARABE_80x100x8

「正順で行う処理と、逆順で行う処理を 同じメソッドと言い張るのは

無理があるだろう☆

ラッパーにして 内部で分けているというのなら 有り得るが、

if文連打で 一緒にやっているのは やはり無理があるぜ☆」


19:33

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「棋譜ツリーは、指し手の符号を荷札、局面を内容 として持っているんだが、

指し手の符号通りに 指したとき、駒を取ったら、

荷札の方に 『駒を取った』 という印を付けているんだが、

これが余計なのか、処理のシンプルさを損なっているんだぜ☆」

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あっ☆ 別件の在宅バイトの修正指示が来たんで そっちをやるぜ☆」

KIFUWARABE_80x100x8

「おつ☆」


 

 

 

はてなブックマーク - 【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(13) 一手指すルーチン☆ww
Bookmark this on Yahoo Bookmark
Buzz This
Bookmark this on Google Bookmarks
Bookmark this on Digg
Share on Facebook
Share on reddit
Share on LinkedIn
Share on StumbleUpon
Share on GREE
email this
LINEで送る
Pocket

【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(12) エントリーしたぜ☆ww

2015-09-01 22:32

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「旧・ぐれーすけーる のブログからの続きだぜ☆」

 

ぐれーすけーるブログ 『【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(11) 棋譜読取装置を作っていくんだぜ☆ww』

http://grayscale.dou-jin.com/Category/13/

 

KIFUWARABE_80x100x8

「進捗は どんなものなんだぜ☆?」

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「棋譜を読み込もうと思っていた……、ぐらいなところだぜ☆

第3回将棋電王トーナメントには申し込んでおいたぜ☆

なお、ボナンザ・ライブラリーは使用しないぜ☆」

 


22:40

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「前に いじってたのが 8月11日 か☆ 財布を落とす前じゃないか☆

何やってたのか 忘れているぜ☆」


23:42

KIFUWARABE_80x100x8

「問題が起こっているのか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「バグ取りの途中で中断して、半月放置していたので、

頭の中を整理中だぜ☆」

 

201509012343

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こんな感じで、棋譜を読み込んでいるんだが☆」

 

201509012346

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「途中で強制終了するぜ☆」

 

KIFUWARABE_80x100x8_02_Hidosu

「指し手生成ルーチンがやばい☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「CSAの棋譜を、SFENに変換するときに、 打 とか、 打 じゃないとか、

適当にやってるので、そこらへんが怪しいぜ☆」

 


2015-09-02 00:39

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「CSAの棋譜で 打 を表現するときは、移動元のマス番号が 00 なんだぜ☆

00 は 駒台だな☆」

'** 227 +6879OU -6465FU +6665FU
+6879OU
T17
'** 302 -7162GI +4958KI -5161OU +7988OU -6171OU +3948GI -7182OU +4746FU -6263GI +8786FU -5222HI +3736FU -3344GI +4847GI -3435FU +3635FU -4435GI +0036FU -3544GI +5867KI -7374FU +7887GI -8173KE +6978KI -2133KE +5756FU -4152KI
-6465FU
T8
'** 141 +6665FU -0066KA +8977KE
+6665FU
T24
'** 421 -0066KA +8977KE -6657UM +7988OU -5766UM +3948GI -5455FU +4958KI -5556FU +0018KA -6676UM +2826HI -4132KI +0054FU -7666UM +6564FU -9495FU +9695FU -0096FU +9996KY -6655UM +5867KI -5564UM +2656HI -0097FU +0065FU -6475UM +4857GI -7162GI +8786FU -9798TO +8898OU
-0066KA
T1
'** 225 +8977KE -6657UM +7988OU
+8977KE
T16
'** 416 -6657UM +7988OU -5766UM +3948GI -6676UM +4958KI -7675UM +4857GI -7162GI +5867KI -4132KI +5766GI -7542UM +3736FU -3344GI +0056FU -6263GI +4746FU -7374FU +2937KE -7475FU +4645FU -4433GI +8786FU -8173KE +7887GI -8384FU +6978KI
-6657UM
T8
'** 225 +7988OU -5766UM +3948GI
+7988OU
T9
'** 430 -7162GI +3948GI -5766UM +4958KI -6676UM +4857GI -7675UM +5867KI -4132KI +5766GI -7542UM +2524FU -2324FU +3736FU -3344GI +2937KE -9495FU +9695FU -0096FU +0086KA -9195KY +8642UM -5142OU +0061KA -9697TO +9997KY -9597NY +8897OU -0096FU +9786OU
-5766UM
T14

KIFUWARABE_80x100x8

「SFENでも、 打 は表せるだろう☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うーむ☆ バグの原因をもっと調べるか☆」


00:58

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「次は 後手が 6六 に角を打つ場面なんだが☆」

201509020058

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「なぜか 後手が 先手の駒を動かそうとしているし☆」

201509020100

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「打ち込んだ 角 は、 馬 になっているぜ☆」

201509020101

 

KIFUWARABE_80x100x8

「 『1手指す』 の動きを細かく見てみたいぜ☆

フォーム上にログ出力しようぜ☆」


01:26

201509020125

 

KIFUWARABE_80x100x8

「内部的には、駒台の上に 馬 が乗っているんじゃないか☆?

馬を表示できないから、角と表示されているだけで☆」

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うっ☆」


02:11

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「1手指すボタンを押すと……☆」

 

        /// <summary>
        /// [一手指す]ボタン。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSasu_Click(object sender, EventArgs e)
        {
            OwataMinister.LEARNER.Dlgt_OnLogWrote_or_Null = (string log)=>{
                    this.txtIttesasuLog.Text += log;
                };
            this.Learner.Ittesasu(
                this,
                OwataMinister.LEARNER
            );
            OwataMinister.LEARNER.Dlgt_OnLogWrote_or_Null = null;
        }

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 『一手指す学習バージョン』が実行されて……☆」

 

        /// <summary>
        /// [一手指す]ボタン。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void Ittesasu(Uc_Main uc_Main, KwErrorHandler errH)
        {

            //
            // リストの頭1個を見たい。
            //
            if (uc_Main.LstSasite.Items.Count < 1)
            {
                goto gt_EndMethod;
            }

            // リストボックスの先頭から指し手をSFEN形式で1つ取得。
            SasiteListItemImpl item = (SasiteListItemImpl)uc_Main.LstSasite.Items[0];
            string sfen = item.Sfen;
            errH.Dlgt_OnLogWrote_or_Null("sfen="+sfen);

            //bool isHonshogi = true;
            //int tesumi_yomiGenTeban_forLog = this.Kifu.CountTesumi(this.Kifu.CurNode);// 0;//FIXME:暫定。読み進めている現在の手目
            ////
            //// sfenを字句解析
            ////
            //ShootingStarlightable nextTe;
            //string str1;
            //string str2;
            //string str3;
            //string str4;
            //string str5;
            //string rest;
            //KifuIO_MovesParsers.ParseSfen_FromText(
            //                sfen, out str1, out str2, out str3, out str4, out str5, out rest, this.Kifu, owata.Logger);
            //KifuIO_MovesExecuter.ExecuteSfenMoves_FromTextSub(
            //    isHonshogi,
            //    str1,  //123456789 か、 PLNSGKRB
            //    str2,  //abcdefghi か、 *
            //    str3,  //123456789
            //    str4,  //abcdefghi
            //    str5,  //+
            //    out nextTe,
            //    this.Kifu,
            //    "学習用SFENパース1",
            //    tesumi_yomiGenTeban_forLog,
            //    owata
            //    );

            //
            // 現局面の合法手は、既に読んであるとします。(棋譜ツリーのNextNodesが既に設定されていること)
            //

            //
            // 一手指したい。
            //
            //↓↓一手指し
            //bool isBack = false;

            //Finger out_figMovedKoma;
            //Finger out_figFoodKoma;
            //Node<ShootingStarlightable, KyokumenWrapper> out_newNode_OrNull;
            //KifuIO.Ittesasi(
            //    nextTe,
            //    this.Kifu,
            //    isBack,
            //    out out_figMovedKoma,
            //    out out_figFoodKoma,
            //    out out_newNode_OrNull,//変更した現局面が、ここに入る。
            //    owata
            //    );
        //↑↑一手指し

            //
            // 合法手の一覧は既に作成されているものとします。
            // 次の手に進みます。
            //
            this.Kifu.CurNode = this.Kifu.CurNode.GetNextNode(sfen);

            //
            // リストの頭1個を除外します。
            //
            uc_Main.LstSasite.Items.RemoveAt(0);

            //
            // 合法手のNextNodesを作成します。
            //
            this.CreateNextNodes_Gohosyu(uc_Main,errH);

            //
            // 局面の表示を更新します。
            //
            this.ShowKifuNaiyou(uc_Main, errH);

        gt_EndMethod:
            ;
        }

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「CreateNextNodes_Gohosyu( ) というのが、合法手局面を作ろうとして……☆」

 

        /// <summary>
        /// 合法手を一覧します。
        /// </summary>
        /// <param name="uc_Main"></param>
        public void CreateNextNodes_Gohosyu(Uc_Main uc_Main, KwErrorHandler errH)
        {
            try
            {
                //
                // 指し手生成ルーチンで、棋譜ツリーを作ります。
                //
                bool isHonshogi = true;
                new Sasiteseisei_FukasaYusen_Routine().WAA_Yomu_Start(this.Kifu, isHonshogi, errH);
            }
            catch (Exception ex) { errH.DonimoNaranAkirameta(ex, "棋譜ツリーを作っていたときです。"); throw ex; }

        }

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「WAA_Yomu_Start( ) が実行される☆」

 

        /// <summary>
        /// 読む。
        /// 
        /// 棋譜ツリーを作成します。
        /// </summary>
        /// <param name="kifu">この棋譜ツリーの現局面に、次局面をぶら下げて行きます。</param>
        /// <param name="enableLog"></param>
        /// <param name="isHonshogi"></param>
        /// <param name="logTag"></param>
        /// <returns></returns>
        public void WAA_Yomu_Start(
            KifuTree kifu,
            bool isHonshogi,
            KwErrorHandler errH
            )
        {
            Sasiteseisei_Genjo genjo = this.CreateGenjo(kifu, isHonshogi, errH);
            genjo.Node_yomiNext = (KifuNode)kifu.CurNode;// このノードに、ツリーをぶら下げていきます。


            try
            {
                Sasiteseisei_FukasaYusen_Routine.WAAA_Yomu_Loop(genjo, errH);
            }
            catch (Exception ex)
            {
                //>>>>> エラーが起こりました。
                string message = ex.GetType().Name + " " + ex.Message + ":棋譜ツリーの読みの中盤50です。:";
                Debug.Fail(message);

                // どうにもできないので  ログだけ取って、上に投げます。
                errH.Logger.WriteLine_Error(message);
                throw ex;
            }

            try
            {
                if (0 < genjo.Args.LogF_moveKiki.boards.Count)//ログが残っているなら
                {
                    //
                    // ログの書き出し
                    //
                    Util_GraphicalLog.WriteHtml5(
                        true,//enableLog,
                        "SasiteRoutine#Yomi_NextNodes(00)新ログ",
                        "[" + Util_GraphicalLog.BoardFileLog_ToJsonStr(genjo.Args.LogF_moveKiki) + "]"
                    );

                    // 書き出した分はクリアーします。
                    genjo.Args.LogF_moveKiki.boards.Clear();
                }
            }
            catch (Exception ex)
            {
                errH.DonimoNaranAkirameta(ex, "棋譜ツリーの読みの後半90です。"); throw ex;
            }

        }

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「この中では WAAA_Yomu_Loop( ) が実行され☆」

 

        /// <summary>
        /// 棋譜ツリーに、ノードを追加していきます。再帰します。
        /// </summary>
        /// <param name="node_yomiCur"></param>
        /// <param name="genjo"></param>
        /// <param name="isAiteban"></param>
        /// <param name="errH"></param>
        private static void WAAA_Yomu_Loop(
            Sasiteseisei_Genjo genjo,
            KwErrorHandler errH
            )
        {
            //
            // まず前提として、
            // 現手番の「被王手の局面」だけがピックアップされます。
            // これはつまり、次の局面がないときは、その枝は投了ということです。
            //

            KifuNode hub_NextNodes;
            try
            {
                // このハブ・ノード自身は空っぽで、ハブ・ノードの次ノードが、次局面のリストになっています。
                hub_NextNodes = Sasiteseisei_FukasaYusen_Routine.WAAAA_CreateNextNodes(
                    genjo,
                    errH);
            }
            catch (Exception ex)
            {
                errH.DonimoNaranAkirameta(ex, "棋譜ツリーの読みループの前半10です。");  throw ex;
            }

            try
            {
                //
                // (2)現在の局面に、読んだ局面を継ぎ足します。
                //
                genjo.Node_yomiNext.AppdendNextNodes(//現在ノード
                    hub_NextNodes);
            }
            catch (Exception ex)
            {
                errH.DonimoNaranAkirameta(ex, "棋譜ツリーの読みループの前半20です。"); throw ex;
            }


            try
            {
                Sasiteseisei_FukasaYusen_Routine.WAAAA_Create_NextBranch(genjo, hub_NextNodes, errH);
            }
            catch (Exception ex)
            {
                errH.DonimoNaranAkirameta(ex, "棋譜ツリーの読みループの後半70です。"); throw ex;
            }


            try
            {
                if (genjo.Node_yomiNext.IsLeaf)//現在ノード
                {
                }
                else
                {
                    // TODO: 葉ノードではない(次のノードがある)なら、次枝読みが終わったので、この中間ノードの局面データは使われませんので破棄します。
                    //node_yomiCur.Lock_Kyokumendata();
                }

            }
            catch (Exception ex)
            {
                errH.DonimoNaranAkirameta(ex, "棋譜ツリーの読みループの後半90です。"); throw ex;
            }

        }

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「WAAAA_CreateNextNodes( ) で次の局面を作ろうとし☆」

 

        /// <summary>
        /// まず前提として、
        /// 現手番の「被王手の局面」だけがピックアップされます。
        /// これはつまり、次の局面がないときは、その枝は投了ということです。
        /// </summary>
        /// <param name="enableLog"></param>
        /// <param name="isHonshogi"></param>
        /// <param name="yomuDeep"></param>
        /// <param name="tesumi_yomiCur"></param>
        /// <param name="pside_yomiCur"></param>
        /// <param name="node_yomiCur"></param>
        /// <param name="logF_moveKiki"></param>
        /// <param name="logTag"></param>
        /// <returns>複数のノードを持つハブ・ノード</returns>
        private static KifuNode WAAAA_CreateNextNodes(
            Sasiteseisei_Genjo genjo,
            KwErrorHandler owata
            )
        {
            // 利きから、被王手の局面を除いたハブノード
            // このハブ・ノード自身は空っぽで、ハブ・ノードの次ノードが、次局面のリストになっています。
            KifuNode hubNode;
            {

                // ①現手番の駒の移動可能場所_被王手含む


                MmGenjo_MovableMasuImpl mm_genjo = null;
                try
                {
                    mm_genjo = new MmGenjo_MovableMasuImpl(
                            genjo.Args.IsHonshogi,//本将棋か
                            genjo.Node_yomiNext.Value.ToKyokumenConst,//現在の局面  // FIXME:Lockすると、ここでヌルになる☆
                            genjo.Pside_teban,//手番
                            false//相手番か
                            );
                }
                catch (Exception ex)
                {
                    owata.DonimoNaranAkirameta(ex, "棋譜ツリーの読みループの作成次ノードの前半10です。"); throw ex;
                }

                MmLogGenjoImpl mm_log = null;
                KaisetuBoard logBrd_move1 = new KaisetuBoard();// 盤1個分のログの準備
                try
                {
                    mm_log = new MmLogGenjoImpl(
                            logBrd_move1,//ログ?
                            genjo.YomuDeep,//読みの深さ
                            genjo.Tesumi_yomiCur,//手済み
                            genjo.Node_yomiNext.Key,//指し手
                            owata//ログ
                        );
                }
                catch (Exception ex)
                {
                    owata.DonimoNaranAkirameta(ex, "棋譜ツリーの読みループの作成次ノードの前半20です。"); throw ex;
                }

                List_OneAndMulti<Finger, SySet<SyElement>> komaBETUSusumeruMasus;
                try
                {
                    Util_MovableMove2.LA_Get_KomaBETUSusumeruMasus(
                        out komaBETUSusumeruMasus,//進めるマス
                        mm_genjo,
                        mm_log
                    );
                }
                catch (Exception ex)
                {
                    owata.DonimoNaranAkirameta(ex, "棋譜ツリーの読みループの作成次ノードの前半30です。"); throw ex;
                }

                try
                {
                    Sasiteseisei_FukasaYusen_Routine.Log1(genjo, logBrd_move1);//ログ試し
                }
                catch (Exception ex)
                {
                    owata.DonimoNaranAkirameta(ex, "棋譜ツリーの読みループの作成次ノードの前半40です。"); throw ex;
                }


                // ②利きから、被王手の局面を除いたハブノード
                if (genjo.Args.IsHonshogi)
                {
                    try
                    {
                        Maps_OneAndMulti<Finger, ShootingStarlightable> komaBETUAllSasites = Converter04A.KomaBETUSusumeruMasus_ToKomaBETUAllSasites(komaBETUSusumeruMasus, genjo.Node_yomiNext);
                        Converter41.AssertNariSasite(komaBETUAllSasites, "#WAAAA_CreateNextNodes(1)");

                        // 本将棋の場合、王手されている局面は削除します。
                        hubNode = Util_LegalMove.LA_RemoveMate(
                            genjo.Args.IsHonshogi,
                            komaBETUAllSasites,
                            genjo.YomuDeep,
                            genjo.Tesumi_yomiCur,
                            genjo.Pside_teban,
                            genjo.Node_yomiNext,
                            genjo.Args.LogF_moveKiki,//利き用
                            "読みNextルーチン",
                            owata);
                    }
                    catch (Exception ex)
                    {
                        owata.DonimoNaranAkirameta(ex, "棋譜ツリーの読みループの作成次ノードの中盤50です。"); throw ex;
                    }

                    //
                    // 成りの指し手を追加します。
                    //
                    try
                    {
                        Converter87.AddNariSasite(genjo.Node_yomiNext, hubNode, owata);
                    }
                    catch (Exception ex)
                    {
                        owata.DonimoNaranAkirameta(ex, "王手局面除去後に成りの指し手を追加していた時です。"); throw ex;
                    }


                    Converter04A.AssertNariSasite(hubNode, "#WAAAA_CreateNextNodes(2)");//ここで消えていた☆
                }
                else
                {
                    try
                    {
                        //そのまま変換
                        Dictionary<ShootingStarlightable, KyokumenWrapper> ss = Converter87.KomabetuMasus_ToSasitebetuSky(
                            komaBETUSusumeruMasus,
                            genjo.Node_yomiNext.Value.ToKyokumenConst,
                            genjo.Pside_teban,
                            owata);
                        hubNode = Converter87.SasitebetuSky_ToHubNode(ss, Util_Sky050A.GetReverseTebanside(genjo.Pside_teban));
                    }
                    catch (Exception ex)
                    {
                        owata.DonimoNaranAkirameta(ex, "棋譜ツリーの読みループの作成次ノードの後半90です。"); throw ex;
                    }

                }
            }

            return hubNode;
        }

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「SasitebetuSky_ToHubNode( ) が、

どの駒がどのマスへ移動できる、という手の一覧を作るぜ☆」

 

        /// <summary>
        /// どの駒が、どのマスへ動ける、というリストを、ハブ・ノードへ変換します。
        /// </summary>
        /// <param name="sasitebetuSkys"></param>
        /// <param name="nextTebanside"></param>
        /// <returns></returns>
        public static KifuNode SasitebetuSky_ToHubNode(Dictionary<ShootingStarlightable, KyokumenWrapper> sasitebetuSkys, Playerside nextTebanside)
        {
            KifuNode hubNode = new KifuNodeImpl(null, null, Playerside.Empty);

            foreach (KeyValuePair<ShootingStarlightable, KyokumenWrapper> nextNode in sasitebetuSkys)
            {
                hubNode.Add_NextNode(
                    Util_Sky200.TranslateSasite_StarlightToText(nextNode.Key),
                    new KifuNodeImpl(nextNode.Key, nextNode.Value, nextTebanside)
                    );
            }

            return hubNode;
        }

 


02:27

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「これを見ると、『一手指す』処理は行ってないんだぜ☆

どの駒が、どのマスへ動ける、というだけで☆」

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「必ず、次の式が無ければいけないんだが……☆」

 

一手指す( 現局面, 指し手) = 次局面

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「 『一手指す』ルーチンを呼んでないぜ☆」

 

KIFUWARABE_80x100x8

「指し手の符号さえ 将棋サーバーに送れば、

『一手指す』のは 将棋サーバー がやってくれるので、

一見 きふわらべ は動いているように見えるが、

最初の1手の合法手だけ うまく選んでいるだけで、

2手目以降は うまく指せてないんじゃないか☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あうち☆!」


02:36

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「Grayscale.P781_FeatureVectorLearn.L100_Learn.LearnerImpl.Ittesasu( ~)

メソッドの中では、『一手指す』ルーチンを呼び出さなければならないのに、

まだ書きかけだったのかなんだぜ☆」

 


きふわらべへの理解の深まり あり なんだぜ☆!

第3回電王トーナメントへ 微速微進、遅々前進なんだぜ☆!

 

はてなブックマーク - 【将棋】きふわらべが頂上を目指す☆!第3回将棋電王トーナメント(12) エントリーしたぜ☆ww
Bookmark this on Yahoo Bookmark
Buzz This
Bookmark this on Google Bookmarks
Bookmark this on Digg
Share on Facebook
Share on reddit
Share on LinkedIn
Share on StumbleUpon
Share on GREE
email this
LINEで送る
Pocket

叡王戦8/18(火) 7段Bブロック準決・決勝 神崎健二7段、村山慈明7段、松尾歩7段、稲葉陽7段☆

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame

「おっおっ☆! バイトで超忙しいので 記事はパスなんだぜ~☆

リンクだけ貼っておくんだぜ~☆!」


当日の対局のニコニコ公式将棋配信はこちら☆

【将棋】第1期叡王戦 七段予選 神崎・松尾・村山・稲葉
..


 

 

はてなブックマーク - 叡王戦8/18(火) 7段Bブロック準決・決勝 神崎健二7段、村山慈明7段、松尾歩7段、稲葉陽7段☆
Bookmark this on Yahoo Bookmark
Buzz This
Bookmark this on Google Bookmarks
Bookmark this on Digg
Share on Facebook
Share on reddit
Share on LinkedIn
Share on StumbleUpon
Share on GREE
email this
LINEで送る
Pocket

叡王戦7/31(金) 棋士紹介☆ 7段Aブロック 平藤眞吾7段、豊川孝弘7段、飯塚祐紀7段、野月浩貴7段☆

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu
明日あしたは 叡王戦えいおうせん ニコ生配信なまはいしんなんだぜ☆ 登場とうじょうする棋士きしがどんな人物じんぶつなのかをインターネットで調しらべてみるぜ☆」

KIFUWARABE_80x100x8
「トナメのひょうはどうなってるんだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_04_Aozame
「こんな感じになっているぜ……、あっ☆ ティロティロが負けてる☆!」

叡王戦 20150731_eiousen_joke1叡王戦  20150731_eiousen_joke2

 

第1回将棋叡王戦だいいっかいしょうぎえいおうせん (Eiousen 1st. Professional Shogi Tournament.)
http://www.eiou.jp/

 


 

当日の対局のニコニコ公式将棋配信はこちら☆

【将棋】第1期叡王戦 七段予選 平藤・豊川・飯塚・野月
..


 

棋士紹介きししょうかい(INTRODUCTION)

 

平藤眞吾ひらふじしんごだん (HIRAFUJI Shingo 7 dan)

[nicodo display=”player”]sm7662440[/nicodo]

KIFUWARABE_80x100x8
面白動画おもしろどうがかったので、対局たいきょくでもてみようぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu
後手番ごてばん平藤ひらふじだん、1手損角替てぞんかくがわりからの端歩突はしふづきか☆

相手あいて出方でかたうかがっているんだな☆ オールラウンダーだからな☆」


 

豊川孝弘とよかわたかひろだん (TOYOKAWA Takahiro 7 dan)

[nicodo display=”player”]sm23361245[/nicodo]

KIFUWARABE_80x100x8
「マンモスだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu
「いつも飛び出と だしているのは、おやじギャグ というのかなんだぜ☆ww」


 

飯塚祐紀いいづかひろきだん (IIDUKA Hiroki 7 dan)

[nicodo display=”player”]sm22347245[/nicodo]

KIFUWARABE_80x100x8
「うそ矢倉許やぐらゆるすまじ☆wwww」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu
角打かくうちのすじを作って、てきこまはなれさせて 両取りょうどりにするといいのか☆」

 


 

野月浩貴のづきひろたかだん (NODUKI Hirotaka 7 dan)

[nicodo display=”player”]sm21611106[/nicodo]
KIFUWARABE_80x100x8
小学生名人戦しょうがくせいめいじんせんでもようぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu
「もう何段なんだんとかだったりするんだろ☆ww?」

 

はてなブックマーク - 叡王戦7/31(金) 棋士紹介☆ 7段Aブロック 平藤眞吾7段、豊川孝弘7段、飯塚祐紀7段、野月浩貴7段☆
Bookmark this on Yahoo Bookmark
Buzz This
Bookmark this on Google Bookmarks
Bookmark this on Digg
Share on Facebook
Share on reddit
Share on LinkedIn
Share on StumbleUpon
Share on GREE
email this
LINEで送る
Pocket

きふわらべ 実装図(1)

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu
「おっおっ☆ きふわらべ のソースを、
トップダウンに 説明せつめいしていくぜ☆」

KIFUWARABE_80x100x8
「よし☆」

 


きふわらべの開発環境は、Cドライブの直下に置く☆

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu
「きふわらべは、フォルダーを何階層なんかいそうって ログをすんだぜ☆
ファイルパスがながくなってこまるんだぜ☆

そこで、ファイルパスはみじかほうがいいんだぜ☆
マイドキュメントとかではなく、シードライブの直下ちょっかにフォルダーをつくるんだぜ☆」

 

201507240042

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu
「Cドライブの直下に、 Root_KifuWarabe というフォルダーをつくるんだぜ☆

このフォルダーのなかに、きふわらべ 関係かんけいのファイルは ぜ~んぶ ほうむんだぜ☆」

KIFUWARABE_80x100x8
「Root_KifuWarabe がながいんだぜ☆ ちぢめて RKW にしたらどうだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu
かりにくいんだぜ☆ Root_KifuWarabe の15文字もじは、これ以上縮いじょうちぢめないぜ☆wwww」


ランタイムパッケージ、リリース部、ソース部

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu
「きふわらべのなかでは、C++シープラプラつくっているプログラムを利用りようしているところがあるんだぜ☆

そのプログラムが MSVCR110.dll というファイルをしがるんだが、
きふわらべを あなたのPCピーシーくばろうとおもっても、そのPCに MSVCR110.dll がはいっていないことがある☆

そこで、MSVCR110.dll をPCにれるプログラムが vcredist_x64.exe なんだが、7MBメガバイト とサイズがでかい☆ こんなのバックアップしてられない☆

そこで vcredist_x64.exe ファイルは、『VCビジュアルシー++プラプラ再配布可能さいはいふかのうランタイムパッケージ』というフォルダーにけて入れておいたんだぜ☆」

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu
つぎに 『buildsビルズ』 フォルダーなんだが、この中に 将棋しょうぎエンジンと、将棋エンジンが必要ひつようとする設定せっていファイルなどがはいっている。つまり、対局用たいきょくようのものが入っている☆

sourcesソースズ』フォルダーは、開発かいはつするときだけ必要になるファイルが入っている。

つまり、対局たいきょくするだけなら 『sources』 フォルダーはらない☆
対局目的たいきょくもくてきで きふわらべ をくばるときは 『sources』 フォルダーをはずしておくと、ファイルサイズがちいさくてむんだぜ☆

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu
「ツイッターで相談そうだんしながら フォルダー構成こうせいめたんだぜ☆
わりと無駄むだのないかたをしてるんじゃないか☆?」

KIFUWARABE_80x100x8
「3つのフォルダーのそとにも ファイルがはいっているみたいだが☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu
「わたしが 動作どうさテストと バックアップの作業さぎょうらくするために
いてるだけなんで、リリースするときははずすぜ☆」

はてなブックマーク - きふわらべ 実装図(1)
Bookmark this on Yahoo Bookmark
Buzz This
Bookmark this on Google Bookmarks
Bookmark this on Digg
Share on Facebook
Share on reddit
Share on LinkedIn
Share on StumbleUpon
Share on GREE
email this
LINEで送る
Pocket

叡王戦7/16(木) 棋士紹介☆ 9段Cブロック 中村修9段、三浦弘行9段、桐山清澄9段、森けい二9段、佐藤康光9段☆

KITASHIRAKAWA_Chiyuri_80x100x8_03_Ahee
「もう叡王戦えいおうせんか☆! やることがおおくて いそがしすぎて、意識いしきびそうなんだぜ~☆!」

KIFUWARABE_80x100x8
「まだんでないな☆ 大丈夫だいじょうぶ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_03_Ahee
「……☆!」

叡王戦  20150716_eiousen_joke1

叡王戦  20150716_eiousen_joke2

 

第1回将棋叡王戦だいいっかいしょうぎえいおうせん (Eiousen 1st. Professional Shogi Tournament.)
http://www.eiou.jp/

 


 

当日の対局のニコニコ公式将棋配信はこちら☆

【将棋】第1期叡王戦 九段予選 桐山・森・中村・佐藤・三浦
..


 

棋士紹介きししょうかい(INTRODUCTION)

 

中村修なかむらおさむだん (NAKAMURA Osamu 9 dan)

続きを読む 叡王戦7/16(木) 棋士紹介☆ 9段Cブロック 中村修9段、三浦弘行9段、桐山清澄9段、森けい二9段、佐藤康光9段☆

はてなブックマーク - 叡王戦7/16(木) 棋士紹介☆ 9段Cブロック 中村修9段、三浦弘行9段、桐山清澄9段、森けい二9段、佐藤康光9段☆
Bookmark this on Yahoo Bookmark
Buzz This
Bookmark this on Google Bookmarks
Bookmark this on Digg
Share on Facebook
Share on reddit
Share on LinkedIn
Share on StumbleUpon
Share on GREE
email this
LINEで送る
Pocket

[ボナンザ] GPW2006 発表資料を読んでみるんだぜ☆

//書きかけ

 

ボナンザメソッドを勉強するぜ☆!

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu
「ボナンザメソッドを勉強するぜ☆!」

KIFUWARABE_80x100x8
「うむ☆ やるんだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu
「発表資料は、ボナンザの開発者の 保木さんのページに置いてあるんだぜ☆」

『Bonanza – The Computer Shogi Program』
http://www.geocities.jp/bonanza_shogi/

このページの一番下のリンクが 発表資料なんだぜ☆

『GPW 2006 発表資料』
http://www.geocities.jp/bonanza_shogi/gpw2006.pdf

 


KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ほうーほ☆ この発表資料、ボナンザ Ver.2 のものなんだぜ☆ww

最近拾えるボナンザは Ver.6 なんだぜ☆wwww
もっと簡単になっているはずなんだぜ☆wwww

ちょっと 読み替えないといけないんだぜ☆wwww」

Wikipedia『Bonanza』
https://ja.wikipedia.org/wiki/Bonanza

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「全部で10ページ、20コマの短いドキュメントなので、

1コマずつ 読んでいくとするぜ☆」


 

[1コマ目] 何の発表なのかなんだぜ☆?

コマ01_1

 

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu
「まず最初に、 『最適制御さいてきせいぎょ』 というものがあることを
知ってないと 読めないんだぜ☆

ボナンザメソッドは、最適制御 ですよ、
と言っているんだぜ☆」

KIFUWARABE_80x100x8
「最適制御を 3行で 説明してくれ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_03_Ahee
「お手玉をしていた ピエロのおっさんが、
あらぬ方向に 玉を投げてしまったので、
後ろの池に ボチャン してしまった☆」

KIFUWARABE_80x100x8
「うむ☆ 分からないぜ☆」

最適制御_01_1

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu
「図のように、ピエロのおっさんが 危ない足場で
お手玉をしていたとする☆」

KIFUWARABE_80x100x8
「誰か このおっさんを止めろ☆!」

 

 

はてなブックマーク - [ボナンザ] GPW2006 発表資料を読んでみるんだぜ☆
Bookmark this on Yahoo Bookmark
Buzz This
Bookmark this on Google Bookmarks
Bookmark this on Digg
Share on Facebook
Share on reddit
Share on LinkedIn
Share on StumbleUpon
Share on GREE
email this
LINEで送る
Pocket

叡王戦7/2(木) 棋士紹介と戦型予想☆ 9段Eブロック 田中魁秀9段、高橋道雄9段、福崎文吾9段、青野照一9段☆

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu明日あしたは 叡王戦えいおうせんの 9段Eだんイーブロック なんだぜ☆」

KIFUWARABE_80x100x8「1時間じかん30分後ぷんごには明日あしたになってしまう☆ あしいてくれ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_03_Ahee「……☆!」

叡王戦  20150630_eiousen_joke1

叡王戦 20150630_eiousen_joke2

第1回将棋叡王戦だいいっかいしょうぎえいおうせん (Eiousen 1st. Professional Shogi Tournament.)
http://www.eiou.jp/

 


 

当日の対局のニコニコ公式将棋配信はこちら☆

【将棋】第1期叡王戦 九段予選 田中・青野・福崎・高橋
..


 

棋士紹介きししょうかい(INTRODUCTION)

 

田中魁秀たなかかいしゅうだん (TANAKA Kaisyu 9 dan)

続きを読む 叡王戦7/2(木) 棋士紹介と戦型予想☆ 9段Eブロック 田中魁秀9段、高橋道雄9段、福崎文吾9段、青野照一9段☆

はてなブックマーク - 叡王戦7/2(木) 棋士紹介と戦型予想☆ 9段Eブロック 田中魁秀9段、高橋道雄9段、福崎文吾9段、青野照一9段☆
Bookmark this on Yahoo Bookmark
Buzz This
Bookmark this on Google Bookmarks
Bookmark this on Digg
Share on Facebook
Share on reddit
Share on LinkedIn
Share on StumbleUpon
Share on GREE
email this
LINEで送る
Pocket

叡王戦6/30(火) 棋士紹介と戦型予想☆ 5段Aブロック 金井恒太5段、佐藤慎一5段、船江恒平5段、阿部光瑠5段☆

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu明日あしたは 叡王戦えいおうせんの 5段Aだんエーブロック なんだぜ☆」

叡王戦 20150629_eiousen_joke1叡王戦 20150629_eiousen_joke2

第1回将棋叡王戦だいいっかいしょうぎえいおうせん (Eiousen 1st. Professional Shogi Tournament.)
http://www.eiou.jp/

 


 

当日の対局のニコニコ公式将棋配信はこちら☆

【将棋】第1期叡王戦 五段予選 金井・佐藤・船江・阿部
..


 

 

棋士紹介きししょうかい(INTRODUCTION)

続きを読む 叡王戦6/30(火) 棋士紹介と戦型予想☆ 5段Aブロック 金井恒太5段、佐藤慎一5段、船江恒平5段、阿部光瑠5段☆

はてなブックマーク - 叡王戦6/30(火) 棋士紹介と戦型予想☆ 5段Aブロック 金井恒太5段、佐藤慎一5段、船江恒平5段、阿部光瑠5段☆
Bookmark this on Yahoo Bookmark
Buzz This
Bookmark this on Google Bookmarks
Bookmark this on Digg
Share on Facebook
Share on reddit
Share on LinkedIn
Share on StumbleUpon
Share on GREE
email this
LINEで送る
Pocket