Автор Никита Башаев задал вопрос в разделе Другие языки и технологии
Написать функцию перемешивания двумерного массива (поле для пятнашек) , чтобы их можно было пройти (JS) и получил лучший ответ
Ответ от Капитан Гугл[гуру]
Проходимость пятнашек зависит от кол-ва - точнее, от четности.
Ответ от Вася Пупкин[гуру]
Берешь свой двумерный массив. Берешь пустую клетку. И считаешь, сколько фишек ты можешь на нее передвинуть. Если пустая клетка в углу, то 2 фишки. Если на краю, то 3 фишки, если в центре поля где-то, то 4 фишки.
Выбираешь рандомно число от 1 до n. n - количество фишек из предыдущего абзаца. И двигаешь фишку с рандомно выбранным номером на пустую клетку.
И так много раз. раз 50, думаю, хватит.
Т. е. программно реализуешь алгоритм перемешивания обычных аналоговых пятнашек.
Тогда по любому соберутся.
Берешь свой двумерный массив. Берешь пустую клетку. И считаешь, сколько фишек ты можешь на нее передвинуть. Если пустая клетка в углу, то 2 фишки. Если на краю, то 3 фишки, если в центре поля где-то, то 4 фишки.
Выбираешь рандомно число от 1 до n. n - количество фишек из предыдущего абзаца. И двигаешь фишку с рандомно выбранным номером на пустую клетку.
И так много раз. раз 50, думаю, хватит.
Т. е. программно реализуешь алгоритм перемешивания обычных аналоговых пятнашек.
Тогда по любому соберутся.
Ответ от Макс[эксперт]
Если у Вас игровой процесс осуществляется мышью, то напишите процедуры передвижения квадрата слева в пустую ячейку, квадрата справа в пустую ячейку и для верхнего и нижнего квадратов. .
если такие "обработчики" уже есть (управление "стрелочное"),то
заполняешь массив числами от 1 до 8/15/24, а потом просто 100-200 раз выполни одну из этих процедур. . и получишь запутанное поля для игры которое соберется в 100%
Если у Вас игровой процесс осуществляется мышью, то напишите процедуры передвижения квадрата слева в пустую ячейку, квадрата справа в пустую ячейку и для верхнего и нижнего квадратов. .
если такие "обработчики" уже есть (управление "стрелочное"),то
заполняешь массив числами от 1 до 8/15/24, а потом просто 100-200 раз выполни одну из этих процедур. . и получишь запутанное поля для игры которое соберется в 100%
Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Написать функцию перемешивания двумерного массива (поле для пятнашек) , чтобы их можно было пройти (JS)