Цитата:
мало просто сходить, надо сходиь так, что бы закрасить все поле..
|
Придется строить дерево.
Получается количество ходов=63(8*8-1),и количество уровней дерева.Количество вариантов которые придется перебирать мне и представить сложно
Допустим все клетки свободные .фигура находится где то посредине.
Смотрим что за ходы у нас есть(8 ходов, если фигура находится с краю поля то меньше).Прросматриваем первый ход.Вновь строим все возможные ходы и так поднимаемся по "дереву" пока или не достигним того что все заполним(кстати все эти текущие ходы надо запоминать)и выведем то что снизу это первые сверху последнии.Если ходы заканчиваются а свободные клетки остаются на уровень вниз и расчет оставшихся ходов.
Можно еще сделать чтобы при переходе по дереву на уровень вверх просматривалась ветвь на которой больше всего ходов, т.к. там вероятность того что идем туда выше.
Еще можно прикрутить оценку позиции. В центре оценка будет больше, т.к ходов больше, по краям меньше.
Певые ходы(2-3) можно сделать случайными(или нельзя?), скорость возрастет на несколько порядков.
З.Ы. В любом случае алгоритм решения данной задачи будет жутко медленным, и оптимитизация его затруднена потому что я, допустим не очень то понимаю, где отсечение веток делать.