私はパズルを解くアプリケーションを構築しようとしています (グラフ アルゴリズムを開発しようとしています)。サンプル入力を常に手で入力したくありません。
編集: ゲームを構築しようとしているわけではありません。ゲーム「SpellSeeker」をプレイするエージェントを構築しようとしています
画面に数字が入った画像 (添付ファイルを参照) があり、ボックスの位置を知っていて、これらの数字の正確な画像があるとします。私がやりたいことは、対応するボックスにある画像 (番号) を単純に伝えることです。
だから私は実装する必要があると思います
bool isImageInsideImage(Bitmap numberImage,Bitmap Portion_Of_ScreenCap)
またはそのようなもの。
私が試したのは(AForgeライブラリを使用)
public static bool Contains(this Bitmap template, Bitmap bmp)
{
const Int32 divisor = 4;
const Int32 epsilon = 10;
ExhaustiveTemplateMatching etm = new ExhaustiveTemplateMatching(0.9f);
TemplateMatch[] tm = etm.ProcessImage(
new ResizeNearestNeighbor(template.Width / divisor, template.Height / divisor).Apply(template),
new ResizeNearestNeighbor(bmp.Width / divisor, bmp.Height / divisor).Apply(bmp)
);
if (tm.Length == 1)
{
Rectangle tempRect = tm[0].Rectangle;
if (Math.Abs(bmp.Width / divisor - tempRect.Width) < epsilon
&&
Math.Abs(bmp.Height / divisor - tempRect.Height) < epsilon)
{
return true;
}
}
return false;
}
しかし、この画像で黒い点を検索すると false が返されます。
どうすればこれを実装できますか?