БлогNot. Головоломка "2020"

Головоломка "2020"

Увы, как часто бывает, и здесь получилось не то, что было задумано!

Головоломка очень простая и "застольная" - управляя клавишами со стрелками, получи за минимальное количество ходов четыре числа "2020" на поле 4 x 4, числа можно читать в любом направлении по горизонтали, вертикали или диагонали, игровое поле замкнуто на тор, то есть, с любого его края можно попасть на противоположный, продолжая движение в направлении "за край" поля.

скриншот приложения
скриншот приложения

Увидеть исходник можно из исходника прикреплённого скрипта (файл .html в кодировке Юникода UTF-8).

Как и в ряде других скриптов, я использовал замечательную библиотеку p5.js, подключённую с моего сайта (так что версия может быть не последняя).

 Открыть головоломку "2020" в новом окне/вкладке

А что было задумано?

Изначально код не зависел от размерности поля, а само игровое поле было вот таким, начинали с клетки с восьмёркой:

 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.

Думаю, это ничего не даст, ну, будет другое соседство клеток и всё.

Вывод - не та идея с этим модулем разности :( Разозлился и получил то, что сейчас перед вами :)


теги: игра числа графика javascript

01.01.2020, 21:46; рейтинг: 359