リバーシのアルゴリズム4
C++で作成したDOS版リバーシをC#へ移植
見た目はDOSだからまったく変わってないが、内部は.NetFramework4になっている。
std::vector<>はList、もしくはStackへ
ColorStorageはハッシュテーブルへ
ほとんど2次元配列の処理なので、Linqに置き換えれるとこがなかった。
メインの処理群をクラスライブラリにした。=>Reversi.Engin
コンソールはCosoleTestプロジェクトを作成しそこからReversi.Enginを参照。
次はWPFからReversi.Enginを参照し、GUI処理を構築していく。
C++版では、Pointのコンストラクタに文字列指定のコンストラクタを追加し、
文字列→X,Yへ変換失敗したら例外を投げる仕様だった。
これを使う方では、
try
{
Point parse(in);
p = parse;
}catch(invalid_argument e){
cerr << “リバーシ形式の手を入力して下さい!” << endl;
continue;
}
とちょっと冗長になってしまう。
そこで以下のようにした。
var p = Point.GetPoint(input_string);
if (p == null)
{
Console.WriteLine(“リバーシ形式の手を入力して下さい!”);
continue;
}
[download id=”24″]