Мы продолжаем знакомство с гениальным алгоритмом X Дональда Кнута - Dancing Links. На этом уроке мы доработает функции AddRow() и Dance() в классе Dance(). Так же реализуем функции Cover/Uncover().
Дата отправки отчёта:
30 июня 2017 г.
Задание выполнено: за
2 час. 05 мин.
Чему научился:
Реализовывать алгоритм
Что было сложным:
Найти ошибку
Комментарии:
cell.row = row; headers[x].InsertUp(cell); headers[x].size++; Вместо InsertUp было написано InsertLeft. И это было ошибкой :(
Программа пытается найти еще несколько вариантов. Но во втором случае она не указала 5 (это фигура E). И мы бы получили полностью собранную фигуру. В третьем случае ответ неверный полностью, так как при выбранных трех фигурах никак нельзя поставить четвертую.
Думаю, что неправильные ответы получаются, так как мы не откатываемся до нужного состояния при первых неправильных ответах. Нужно сделать более подробную трассировку работы программы.
Научился: Реализовывать алгоритм cell.row = row;
headers[x].InsertUp(cell);
headers[x].size++;
Вместо InsertUp было написано InsertLeft. И это было ошибкой :(
Программа пытается найти еще несколько вариантов. Но во втором случае она не указала 5 (это фигура E). И мы бы получили полностью собранную фигуру. В третьем случае ответ неверный полностью, так как при выбранных трех фигурах никак нельзя поставить четвертую.
Думаю, что неправильные ответы получаются, так как мы не откатываемся до нужного состояния при первых неправильных ответах. Нужно сделать более подробную трассировку работы программы.
Научился: Пытаюсь разобраться как работает алгоритм Трудности: Пока все непросто Все получилось. Идут след в след. В противном случае будет уже не выбраться.