Здравствуйте. Может быть кто-нибудь поможет в решении следующей задачи:
Имеется шахматная доска размером 5x5 и одна фишка в левом верхнем углу. Требуется определить количество всевозможных вариантов ее перемещения в правый нижний (противоположный) угол.
Как я понимаю, решение сводится к составлению и обходу дерева вариантов, но я пока не представляю, как его составить. Если сможете, подскажите пожалуйста алгоритм.
Здравствуйте, Аноним, Вы писали:
А>Как я понимаю, решение сводится к составлению и обходу дерева вариантов, но я пока не представляю, как его составить.
И никто не представляет, пока вы не опишете, по каким правилам перемещается фишка.
And if you listen very hard the alg will come to you at last.
Ну например я хочу реализовать просмотр на 10 ходов вперед. Только вот не знаю как реализовать рекурсивную процедуру просмотра. Может быть Вы что нибудь подскажите?
Здравствуйте, SLAER, Вы писали:
SLA>Дак сложность то и заключается в том, чтобы сделать этот "тупой" перебор. Я не знаю, как реализовать этот перебор.
прочитать про написание рекурсивных программ.
написать рекурсивную программу.которая начинается с запуска рекурсивной процедуры с параметроами координат x=0,y=0 и пустой историей пути которая пройдена (). в программе нужна глобальная переменная соличества.
процедура делает следуюшее.
1) проверить координаты на валидность. в случае не правильных координат покинуть процедуру.
2) проверить координаты на наличие данных координат в истории. в случае повторение координат покинуть процедуру.
2) проверить координаты на конечные координаты. если ты на конечных координатах, прибавляеш 1 к глобальной переменной количества.
3) процедура добавляет в историю пути свои координаты.
4) процедура вызывает себя 8 раз с кординатами (x+1,y),(x+1,y+1),(x,y+1),(x-1,y+1),(x-1,y),(x-1,y-1),(x,y-1),(x+1,y-1) и переменной истории пути.
5) процедура заканчивается.