Поменять 2 соседние фигурки в пятнашке

Поменять 2 соседние фигурки в пятнашке

Пятнашки ⏤ это классическая головоломка, которая была изобретена в 1878 году Ноем Чепмэном․ Игровое поле представляет собой квадрат 4×4٫ состоящий из 16 квадратных ячеек меньшего размера․ Поначалу ячейки расположены в произвольном порядке٫ а одна ячейка остается пустой․

Цель игры состоит в том, чтобы переместить ячейки и упорядочить их таким образом, чтобы числа шли по порядку от 1 до 15, а пустая ячейка находилась в конце поля․ Для этого нужно осуществлять ходы, меняя местами пустую ячейку и соседние с ней ячейки․

Однако возникает вопрос⁚ что делать, если две соседние ячейки находятся не на своих местах и требуют обмена местами?​ Есть несколько подходов к решению этой проблемы․

Подход 1⁚ Использование временной переменной

Простейший способ поменять две соседние ячейки — это использовать дополнительную временную переменную․ Например, если мы хотим поменять местами ячейки A и B, то мы сохраняем значение A во временной переменной X, затем копируем значение B в A, а затем присваиваем значение X ячейке B․


// Поменять местами ячейки A и B
var X = A;
A = B;
B = X;

Таким образом, мы первоначальное значение ячейки A записали во временную переменную X, затем перезаписали ячейку A значением ячейки B, а затем присвоили ячейке B значение X․

Подход 2⁚ Использование арифметических операций

Еще один способ поменять местами две соседние ячейки, использовать арифметические операции․ Например, если ячейка A содержит значение a, а ячейка B содержит значение b, то мы можем выполнить следующие операции⁚


// Поменять местами ячейки A и B
A = A + B;
B = A — B;
A = A — B;

Сначала мы складываем значения ячеек A и B, получая сумму a + b, затем вычитаем из этой суммы значение ячейки B, получая значение ячейки A, и, наконец, вычитаем из суммы значение ячейки A, получая значение ячейки B․

Таким образом, мы меняем значения ячеек A и B, используя только арифметические операции сложения и вычитания․

Оба этих подхода позволяют поменять местами две соседние ячейки в игре в пятнашки․ Они могут быть использованы как в программировании, так и в ручной сборке головоломки․