Головоломка "2020"
Увы, как часто бывает, и здесь получилось не то, что было задумано!
Головоломка очень простая и "застольная" - управляя клавишами со стрелками, получи за минимальное количество ходов четыре числа "2020" на поле 4 x 4, числа можно читать в любом направлении по горизонтали, вертикали или диагонали, игровое поле замкнуто на тор, то есть, с любого его края можно попасть на противоположный, продолжая движение в направлении "за край" поля.
скриншот приложения
Увидеть исходник можно из исходника прикреплённого скрипта (файл .html в кодировке Юникода UTF-8).
Как и в ряде других скриптов, я использовал замечательную библиотеку p5.js, подключённую с моего сайта (так что версия может быть не последняя).
2020.html, открыть головоломку "2020" в текущем окне/вкладке (7 Кб)
А что было задумано?
Изначально код не зависел от размерности поля, а само игровое поле было вот таким, начинали с клетки с восьмёркой:
this.field = [ [ 2, 3, 4, 3, 2 ], [ 3, 4, 6, 4, 3 ], [ 4, 6, 8, 6, 4 ], [ 3, 4, 6, 4, 3 ], [ 2, 3, 4, 3, 2 ] ];
Ходя стрелками на соседние клетки, я заменял числа в целевой клетке их модулем разности с числом в исходной клетке. Целью игры было задумано получить во всех клетках нули.
С ходом на одну соседнюю клетку головоломка, очевидно, неразрешима при любых начальных числах на поле, всегда будет оставаться одна единичка, окружённая нулями - ведь ход с нулевого поля не изменит значения на целевом поле, а обратный ход опять превратит единичку в две.
Не играет также роли, ставим ли мы новое значение в ячейку, с которой или же на которую ходим, а также то, чётный или нечётный размер поля.
Если же ставить модуль разности в обе ячейки, исходную и целевую, игра становится тривиально разрешимой, интерес будет разве что в минимизации количества ходов.
Если разрешить ходить только ходом шахматного коня? Ведь цифры в исходной матрице и означают возможное количество ходов коня с соответствующего поля, а конь может обойти доску 5x5.
Думаю, это ничего не даст, ну, будет другое соседство клеток и всё.
Вывод - не та идея с этим модулем разности :( Разозлился и получил то, что сейчас перед вами :)
01.01.2020, 21:46 [1796 просмотров]