Witam. Mam następujący problem:
Istnieje plansza o wymiarach X na Y. Każde pole ma przypisaną jedną z trzech wartości. Zadaniem algorytmu jest stwierdzenie, czy na takiej planszy istnieje pionowa, pozioma lub ukośna linia o długości Z (nie więcej, nie mniej) złożona z elementów jednego typu.
Zaciąłem się na tym problemie, i jakoś nie mogę znaleźć rozwiązania. Sprawa dla linii poziomych i pionowych nie jest trudna - można sprawdzać po kolei każdą kolumnę i każdy wiersz, licząc powtarzające się znaki. Lecz linie skośne to bardziej złożony problem.
Można:
a ) "obrócić" planszę o 45 stopni, aby linie skośne stały się poziomymi i pionowymi. Rozwiązanie to jednak czyni planszę nieregularną, a rozwiązanie jest ogólnie nieeleganckie.
b ) sprawdzać po kolei linie ukośne dla względem każdej komórki. Skuteczne ale czasochłonne.
Chciałbym dowiedzieć się jakie są Wasze opinie.
Pozdrawiam
Michu