все вы, вероятно, видели головоломку движущегося числа/картинки. Тот, где у вас есть цифры от 1 до 15 в сетке 4x4 и пытается получить их из случайной начальной позиции в
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15
Моя подруга или некоторые из моих друзей, не являющихся программистами, могут решить эту проблему с помощью какой-то магической магии, которую они не могут мне объяснить. Я не могу решить головоломку.
Самый многообещающий подход, который я выяснил, состоит в том, чтобы решить первую строку, тогда я бы получил
1 2 3 4
X X X X
X X X X
X X X
затем первый столбец, не касаясь решенных ячеек
1 2 3 4
5 X X X
9 X X X
13 X X
а затем вторую строку в
1 2 3 4
5 6 7 8
9 X X X
13 X X
а затем второй столбец
1 2 3 4
5 6 7 8
9 10 X X
13 14 X
проблема заключается в том, что оставшиеся X (случайные) плитки иногда находятся в неразрешимой позиции, и это то, где мое решение терпит неудачу. Но я чувствую, что нахожусь на правильном пути.
Моя программа выполняет решение указанной строки/столбца, пытаясь получить номер X в указанную позицию, если не портить правильные ячейки. Но он не может делать последние 3 плитки на сетке 2x2. Что мне не хватает?