Zlokalizuj obraz sztuki ASCII w treści tekstu z pewną tolerancją błędu
Czy są jakieś algorytmy, które mogłyby znaleźć następujący obraz ASCII-art?
+
+
+++
+++++++
++ ++
++ + ++
++ +++ ++
++ + ++
++ ++
+++++++
+++
Wewnątrz następującego tekstu?
+ + + ++ + +++ + +
+ ++ + + ++++ + + + + + + +++ +++ +
+ + + ++ ++ ++ + ++ + + + + +
+ ++ + ++ + + + ++ ++ + +
++++++ + + + ++ + + + + ++ + + +
+ + + + + ++ + ++ + + + +
+++ + ++ + + + +++ + + ++ +
+++++ + + + + + + + +
+ + + + + + + + + + + +
++ + + + ++ + + + ++
Muszę podświetlić obraz artystyczny ASCII na żółto, który odpowiada pełnemu kształtowi. Zobacz załączony obrazek:
Muszę przeszukać plik, który zawiera szorstki kształt, ale nie do końca, pewną liczbę+
może brakować). Tolerancja dla zaginionego+
w kształcie należy ustawić ręcznie.
Teraz mam dwie tablice danych tablic 2D: [100] [100] i tablicę SlimeTorpedo: [13] [11].
Kod określający sposób wykrywania według @kjartan (3-4 kula):
int match = 0;
for (int i = 0; i < 100; i++) {
for (int j = 0; j < 100; j++) {
//Compare DataArr[i][j] with SlimeTorpedoArr[i][j]
//Look for "checked" position in the picture ("+"),
//which corresponds to a checked position in the
//slime torpedo array.
//match++;
}
}
Jakie byłyby ogólne wskazówki, jak podejść do tego problemu?