目指せ、第27回世界コンピュータ将棋選手権☆ ポナンザ・チェイナーを倒そうぜ☆(^~^)<その2>

2017-04-18 20:09

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ゲーム盤をヨコに1マス伸ばしたんだが、

指し手の符号パーサーが エラーを起こすんだぜ☆」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「どういうエラーなの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「SFEN で ゲーム盤の空きマスの数を 1 とか 2 とか入れる書き方があるんだが、

そこに k と入っているんだぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「kって何なの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「2プレイヤーの きりん だぜ☆」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「それは 空きマス じゃなくて きりん じゃないの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「調べてみるぜ☆(^~^)」


20:20

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「きりん だったぜ☆

数字のパーサーかと思って9マスに拡張していたら、数字と駒のパーサーだったんだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「で、4×4盤の定跡が ファイルに書き込まれているんだが、

その定跡が 何×何盤か 指定がないので、

プログラムの受け取り側も 配列のサイズを用意していないんだぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「定跡、二駒学習の書き込みは 3×4盤 でだけ行い、

それ以外の盤では 読書き しないようにしましょう」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「よし……☆」

_auto_joseki_Honshogi(P1).txt

_auto_joseki_Honshogi(P2).txt

_auto_nikoma_Honshogi.txt

_auto_seiseki_Honshogi(P1).txt

_auto_seiseki_Honshogi(P2).txt

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「定跡、二駒、成績 のファイルを 巻き戻すぜ☆」


20:40

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「読書きをしている水際を押さえようぜ☆ Util_Machine.cs にまとまっているはず☆」

Load_Joseki

Flush_Joseki

Load_Nikoma

Flush_Nikoma

Load_Seiseki

Flush_Seiseki

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「この6つを、盤サイズが3×4のときだけ機能するように if文で振り分けるぜ☆」

/// <summary>
/// 定跡、二駒、成績ファイルが 3×4の盤サイズしか対応していないので、
/// 振り分けるんだぜ☆(^~^)
/// </summary>
/// <returns></returns>
static bool IsEnableBoardSize()
{
return Option_Application.Optionlist.BanTateHaba == 4 &&
Option_Application.Optionlist.BanYokoHaba == 3;
}

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「こんな感じで☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「これでよし☆」


20:48

KITASHIRAKAWA_Chiyuri_80x100x8_03_Ahee

「あっ☆!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「升は A1~C4 しかない前提で列挙型を作ってしまっているぜ☆」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「可変盤じゃあ、升を列挙型で指定するのは 廃止なんじゃない?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そうなる……☆」

KIFUWARABE_80x100x8_01_Futu

「ばーんっと改造しようぜ、ばーんっと☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「盤をな☆」

OKAZAKI_Yumemi_80x80x8_03_Zzz

「wwwwwww」


21:22

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「うっ、むず……☆

盤の 上端、右端、下端、左端 も定数で持っていたのかだぜ☆

これも拡張しないと……☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「盤を広げると、新しくできた升に 先手らいおん が埋まるんだが、なぜだぜ☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「駒の 0番 が 先手らいおん なんじゃないの?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「そうか……☆ 駒配列は 空白で埋めないとな☆」

KIFUWARABE_80x100x8_01_Futu

「おや☆? ビットボードじゃないのかだぜ☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「全部をビットボードにはできていないぜ☆」

kifuwarabe_80x100x8_09_umm

「じゃあ 配列と ビットボードの二度手間か☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ビットボードが いけそう なら移行するぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あっ、局面ハッシュ もエラーを吐いた☆

盤サイズを変えたら 局面ハッシュも入れなおさないとな☆」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「トランス・ポジション・テーブルも クリアーしましょう」

 

図は  0手まで 対局者1の番

     A    B    C    D    
  ┌──┬──┬──┬──┐
1│▽き│▽ら│▽ぞ│  │
  ├──┼──┼──┼──┤
2│▽ひ│  │  │▲ひ│
  ├──┼──┼──┼──┤
3│  │▲ぞ│▲ら│▲き│
  ├──┼──┼──┼──┤
4│  │  │  │  │
  └──┴──┴──┴──┘

指し手を入力してください。一例 do B3B2 ※ do b3b2 も同じ
> do c3c4
Doテスト 合成更新D 駒の利き
らいおん    ぞう      きりん     ひよこ     にわとり
対局者1(新)
┌──┬──┬──┬──┐┌──┬──┬──┬──┐┌──┬──┬──┬──┐┌──┬──┬──┬──┐┌──┬──┬──┬──┐
│  │  │  │  ││  │  │  │  ││  │  │  │  ││  │  │  │ 〇 ││  │  │  │  │
├──┼──┼──┼──┤├──┼──┼──┼──┤├──┼──┼──┼──┤├──┼──┼──┼──┤├──┼──┼──┼──┤
│  │  │  │  ││ 〇 │  │ 〇 │  ││  │  │  │ 〇 ││  │  │  │  ││  │  │  │  │
├──┼──┼──┼──┤├──┼──┼──┼──┤├──┼──┼──┼──┤├──┼──┼──┼──┤├──┼──┼──┼──┤
│  │ 〇 │ 〇 │ 〇 ││  │  │  │  ││  │  │ 〇 │  ││  │  │  │  ││  │  │  │  │
├──┼──┼──┼──┤├──┼──┼──┼──┤├──┼──┼──┼──┤├──┼──┼──┼──┤├──┼──┼──┼──┤
│  │ 〇 │  │ 〇 ││ 〇 │  │ 〇 │  ││  │  │  │ 〇 ││  │  │  │  ││  │  │  │  │
└──┴──┴──┴──┘└──┴──┴──┴──┘└──┴──┴──┴──┘└──┴──┴──┴──┘└──┴──┴──┴──┘
対局者1(旧)
┌──┬──┬──┬──┐┌──┬──┬──┬──┐┌──┬──┬──┬──┐┌──┬──┬──┬──┐┌──┬──┬──┬──┐
│  │  │  │  ││  │  │  │  ││  │  │  │  ││  │  │  │  ││  │  │  │  │
├──┼──┼──┼──┤├──┼──┼──┼──┤├──┼──┼──┼──┤├──┼──┼──┼──┤├──┼──┼──┼──┤
│  │  │  │  ││  │  │  │ 〇 ││  │  │  │  ││ 〇 │  │  │  ││  │  │  │  │
├──┼──┼──┼──┤├──┼──┼──┼──┤├──┼──┼──┼──┤├──┼──┼──┼──┤├──┼──┼──┼──┤
│  │ 〇 │ 〇 │ 〇 ││  │  │  │  ││ 〇 │  │ 〇 │  ││  │  │  │  ││  │  │  │  │
├──┼──┼──┼──┤├──┼──┼──┼──┤├──┼──┼──┼──┤├──┼──┼──┼──┤├──┼──┼──┼──┤
│  │ 〇 │  │ 〇 ││  │  │  │  ││  │  │  │  ││  │  │  │  ││  │  │  │  │
└──┴──┴──┴──┘└──┴──┴──┴──┘└──┴──┴──┴──┘└──┴──┴──┴──┘└──┴──┴──┴──┘

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「なんか 駒の利き でアサートに引っかかったぜ☆ 調べるか……☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「盤上の利きも作り直すか☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「駒の種類別の利き、駒全部合わせた利き、升の利きの数、

と3つもあるのか、タイヘンだぜ……☆」

KIFUWARABE_80x100x8_01_Futu

「駒の動き方を 変更してから、 駒の利いている升を 変更したか☆?」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「今やった☆」


22:50

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「FENパーサーが いろんなクラスに飛び散らかっていて 更新がつらい……☆

1つのクラスに集めるか……☆?」


23:46

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「横幅4升までは 伸ばせたぜ☆」

KIFUWARABE_80x100x8_01_Futu

「次は 9升 だな☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「数字を4から9に 単純に増やすとどうなるかだぜ……☆(^~^)」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「ヨコには伸びるが……☆ すこし らいおん で 動き回ってみるかだぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「あれ……☆? ぞうのくせに 斜め上に進めないのかだぜ☆?」


00:56

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「A1 とか、B1 とか列挙型で埋め込んでいる個所が多いぜ☆

これ全部 置き換えていくぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「トライルールで使ってるだけか……☆

ビットボードに置き換えられないかななんだぜ☆」


01:23

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「段が変わると、改造FEN の kkk/kkk/kkk/kkk みたいなやつが増えて、

可変長の段に パーサーが対応しないといけないんだが……☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「じっくり対応させましょう」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「パーサーのコードは変えておいたぜ☆ あとでテストしよう☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「D列とE列の間に見えない壁があって、右に行けないんだが☆」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「D列で縛っていないか 探しましょう!」


02:11

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「別件だが、駒の動きに 飛び地があるぜ☆

見えない壁も 目星がつかないし、飛び地を調べるぜ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu

「やっちゃいましょう!」


03:27

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「はー☆

Sasite っていう、ストックフィッシュでいうところの Move なんだが、

このビットフィールドが 可変幅の将棋盤に対応してないぜ☆」

OKAZAKI_Yumemi_80x80x8_01_Damaru

「9×9 に拡張しましょう」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu

「大きな改造になるので、また今度な☆」

KIFUWARABE_80x100x8_01_Futu

「明日だな☆」

 

はてなブックマーク - 目指せ、第27回世界コンピュータ将棋選手権☆ ポナンザ・チェイナーを倒そうぜ☆(^~^)<その2>
[`yahoo` not found]
[`yahoo_buzz` not found]
このエントリーを Google ブックマーク に追加
Digg にシェア
Facebook にシェア
reddit にシェア
LinkedIn にシェア
[`evernote` not found]
StumbleUpon にシェア
GREE にシェア
email this
LINEで送る
Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です