кодировано, поэтому представим его числом 0. Эти 16 чисел будут храниться в одномерном массиве таким образом, что значениям индекса от О до 3 соответствуют 4 места в верхнем ряду с нумерацией слева направо, от 4 до 7 — 4 места во втором сверху ряду и так далее. Простой проверкой можно убедиться, что частное от целочисленного делении индекса массива на 4 меньше номера ряда на 1, а остаток — меньше номера столбца также на 1. Перемещению некоторой фишки на пустое место в коробочке соответствует обмен чисел в массиве (при этом одно из чисел обязательно нулевое!). Значение индекса передвигаемой фишки может быть вычислено по индексу пустого места и направлению сдвига, задаваемому играющим с клавиатуры. Вертикальным перемещениям соответствует изменение индекса на 4, а горизонтальным — на 1. При этом необходима проверка корректности заданного направления, потому что при нахождении пустого места у края коробочки число возможных ходов уменьшается до 3, а при нахождении в углу — до 2. Запретным направлениям при вертикальном сдвиге соответствует выход значения индекса пустого места за пределы массива, а при горизонтальном сдвиге — изменение номера ряда. Если играющий ввел неправильное направление сдвига, то для сообщения об ошибке используется звуковой сигнал. Размещение 16 чисел в массиве и приведенные ограничения на передвижения полностью описывают как множество состояний системы из 15 пронумерованных фишек в коробочке, так и все возможные переходы из одного состояния системы в другое.
Для изображения коробочки на дисплее можно использовать сдвоенную линию, а для изображения границ между фишками — одинарную. Расширенная таблица символов предоставляет всевозможные сочетания элементов для построения прямоугольных рамок с одинарными и сдвоенными контурами. Поэтому для отображения состояния модели можно использовать текстовый режим работы дисплея. Номера фишек должны выводиться в соответствии с расположением представляющих их чисел в массиве, а число нуль должно выводиться символом пробела. В отличие от предыдущих игр начальное расположение фишек должно быть неупорядоченным. Поэтому расстановка фишек в начале игры задается псевдослучайным расположением чисел от 1 до 15 в позициях массива с 0 по 14 (в 15 позицию заносится 0).
Однако игра может быть успешно завершена не при всякой расстановке фишек. Условием возможности решения задачи является четное количество беспорядков в списке. Беспорядком называется расположение в списке меньшего числа после большего. Подсчет количества беспорядков производится только для значений индекса с 0 по 14, поскольку в начале и конце игры нуль располагается в конце массива. Если количество беспорядков оказалось нечетным, то исправить ситуацию можно перестановкой любой пары соседних чисел в массиве (кроме нуля!). Условием успешного завершения игры является нулевое количество беспорядков в массиве.
Но следует также оставить возможность "неуспешного" завершения игры, например, нажатием клавиши д. Разумеется, в случае успешного завершения было бы педагогично как-то похвалить играющего.