2014-10-27 19:07
わたしの将棋エンジン『きふわらべ』が floodgateの練習対局サーバーで初めての1勝をあげたようなんだぜ☆ まずは おめでとう☆
戦績: 1勝 101敗
では 反省会2日目を行うんだぜ☆
わたしのプログラムは、
① 将棋ライブラリー 『きふららべ』
② 将棋エンジン 『きふわらべ』
③ 将棋GUI 『きふならべ』
の3つで できている☆ この、3つに分かれている、というのが
失敗の原因の1つかと思う☆ 説明しよう☆
↑ 左が③の将棋GUI ↑右が②の将棋エンジン
『きふならべ』 『きふわらべ』
USIサーバー付きの USIクライアント付きの
すぐれもの すぐれもの
GUIとエンジンは、別べつに作っているということは 分かるだろうか☆
↑ これが①のライブラリ
『きふららべ』
摩訶不思議な思想のもと
設計されている
将棋ってどんなゲームだろうか☆? という構想が入っているプログラムなんだぜ☆
③の『きふならべ』と、 ②の『きふわらべ』の両方とも、
『きふららべ』を使って できているんだぜ☆
この3つが、別々のソフトとして作られていることで
かなりの不利益をこうむったので 反省点として 記しておきたい☆
不利益
トレース、ブレークポイントが利かない☆
===================
Visual Studio 2012 は、
今動いているプログラムを、
ソースコードの指定の行で一時停止させたり、
ビデオのコマ送りのように 1行ずつ実行する仕組みを持っている☆
これをトレースとか、ブレークポイントと呼ぶんだぜ☆
Visual Studio 2012 で <将棋GUI>『きふならべ』を動かして
<将棋エンジン>『きふわらべ』と戦っているときは、
<将棋GUI>『きふならべ』 のトレースをすることができる☆
これは バグ を発見しやすい☆
しかし、
<将棋エンジン>『きふわらべ』 や
<ライブラリ>『きふららべ』
で起こった不具合はトレースできないんだぜ☆
それらは 別ソフト(別プロジェクト)として動いている扱いなので
Visual Studio 2012 で止められなかったんだぜ☆
これは バグ を発見しにくい☆
『きふららべ』『きふわらべ』『きふならべ』の3つを
1つのプロジェクト(C#ではソリューションと呼ぶ)にまとめた方が
トレースができて バグを発見しやすかったのではないか☆?w
言っても、不利益は これぐらいのことで、
あとは 3つに分かれていることで 利点の方があったんだが☆
しかし 『トレース、ブレークポイントが使えない』というのは
利点の総合値を上回る不利益 だったよな気がするんだぜ☆
2014-10-27 21:00
と、思って
『きふららべ』『きふわらべ』『きふならべ』の3つを
1つのソリューションにまとめたのだが、
Process.Start( ~ ) と書いてあるように、
<将棋エンジン>『きふわらべ』は
別プロセスとして動かしているんだぜ☆
1つのソリューションにまとめても、プロセスは別ものなんだぜ☆
トレースできないじゃないか☆
そのあと いろいろ探してみたんだが
別プロセスで動いている 将棋エンジン をトレースする方法が
分からなかったんだぜ☆
3つのプロジェクトを1つのソリューションにまとめることは
問題解決にならなかったな☆
ログ出力でがんばるしかないのだろうか☆??
2014-10-27 22:03
しかたないので このヘボいログで がんばるぜ☆
(a)GoteOh=5a4b というのは、5一にいる後手の王が 4二 に行こうとしている、
という意味だぜ☆
銀の4枚目は動けないからこのリストには無く、
歩の14枚目は 私が取ったので このリストには無い☆
後手の駒が 1個だけ候補を選んで並べているリストだな☆
↓局面的には こうなっている☆
これが、(b) で一気に 0件 になっているので、このバグを取りたいんだぜ☆
2014-10-27 22:28
なぜ 駒1個につき 1個だけの候補を選んでいるのかというと、
「まず動かそう」 と "とりあえず” 作ったプログラムだからなんだぜ☆
↑ 駒の動きの全パターンを調べると こうなる☆
このままでは駒が貫通するんだぜ☆ 角が4方向を フル に指している☆ww
1マスしか動かないのであれば、貫通する心配はない☆ww
とはいえ、
一応、貫通しないプログラムも作ってある☆
なんにしろ (b) で 0件 になっている☆
[0回]
PR
http://grayscale.dou-jin.com/Entry/76/【将棋】めざせ電王戦(39) 反省会(2日目)なんだぜ☆