Как реализовать на C++ проверку эвристики линейного конфликта для пятнашек?
Задали большую лабу, программа должна решать пятнашки, причем не обязательно до правильного состояния а из любого состояния А в любое состояние Б.
Один из этапов заключается в том, что нужно с помощью эвристик посчитать, насколько текущее состояние матрицы далеко от нужного.
Уже неделю пытаюсь реализовать такую проверку. Суть ее в следующем:
Считается, что костяшка I и костяшка J находятся в линейном конфликте по строке, если они обе стоят в своей строке, но костяшка I находится левее костяшки J, хотя на самом деле должна быть справа. Также со столбцами.
Никак не могу додуматься, как это проверять "машинно".
Подскажите, пожалуйста, кто нибудь.