Создаем игру Пятнашки за 10 минут | ReactJS 15 Puzzle Game

  Рет қаралды 259

Типичный Веб Разработчик

Типичный Веб Разработчик

Күн бұрын

Пікірлер: 9
@ИванИванов-л7ю
@ИванИванов-л7ю 6 ай бұрын
Сложно 😅 но интересно! Спасибо за контент!
@dphdmn
@dphdmn 5 ай бұрын
2:47 - В алгоритме ошибка. Такое перемешивание дает неразрешимые ситуации, т.к. в пятнашках важно сохранять паритет. Для этого число свапов должно быть чётным, при этом нельзя включать пустую клетку в такой алгоритм, т.к. перемещение пустой клетки сбивает корректность подсчета количества свапов (перемещение двух чисел не тоже самое, что и перемещение пустой клетки, например, в соседнее число, результаты непредсказуемы). Если обязательно нужно замешать пустую клетку, далее можно сгенерировать два случайных числа, и переместить ее в матрице по горизонтали и вертикали, таким образом можно корректно получить случайные состояния.
@dphdmn
@dphdmn 5 ай бұрын
function getScramble(n) { let arr = Array.from({ length: n * n - 1 }, (_, i) => i + 1), parity = false; for (let i = 0; i < n * n - 3; i++) { let t = Math.floor(Math.random() * (n * n - 1 - i)) + i; if (i !== t) parity = !parity; [arr[i], arr[t]] = [arr[t], arr[i]]; } if (parity) [arr[n * n - 3], arr[n * n - 2]] = [arr[n * n - 2], arr[n * n - 3]]; arr.push(0); let g = n * n - 1, d = Math.floor(Math.random() * n), r = Math.floor(Math.random() * n); for (let i = 0; i < d; i++, g -= n) [arr[g], arr[g - n]] = [arr[g - n], arr[g]]; for (let i = 0; i < r; i++, g -= 1) [arr[g], arr[g - 1]] = [arr[g - 1], arr[g]]; return arr; } getScramble(4)
@tipichnyj_web_razrabotchik
@tipichnyj_web_razrabotchik 5 ай бұрын
Привет. Огромное спасибо за комментарий. Похоже надо глубже изучать материал перед началом разработки. Сделал пошаговое перемешивание в 200 ходов.
@falcon94q
@falcon94q 3 ай бұрын
Молодец
@vadimkh
@vadimkh 5 ай бұрын
надо учесть, что не каждый случайный набор возможно собрать в данной головоломке. есть алгоритм, проверяющий такую возможность, но я бы реализовал тасовку как просто 100 ходов в случайном направлении от пустого поля, кроме обратного хода.
@tipichnyj_web_razrabotchik
@tipichnyj_web_razrabotchik 5 ай бұрын
Привет. Я так и сделал. Исправил функцию на гите проекта. Сделал 200 случайных ходов от пустого поля. Не нашел как добавить текстовую подсказку в видео чтобы не перезаливать.
Подключаем и стилизуем React-dropdown компонент
7:17
Типичный Веб Разработчик
Рет қаралды 279
How I used .NET 9 and AI to charge my electric car
25:07
小路飞还不知道他把路飞给擦没有了 #路飞#海贼王
00:32
路飞与唐舞桐
Рет қаралды 84 МЛН
ТЮРЕМЩИК В БОКСЕ! #shorts
00:58
HARD_MMA
Рет қаралды 2,5 МЛН
Увеличили моцареллу для @Lorenzo.bagnati
00:48
Кушать Хочу
Рет қаралды 8 МЛН
Прохожу игру Пятнашки за 1 минуту | Game Puzzle 15 #puzzle
1:00
Типичный Веб Разработчик
Рет қаралды 451
ЧТО ТАКОЕ GIT | FRONTEND ПРОСТЫМИ СЛОВАМИ
20:23
Animation Circle Using HTML & CSS  @TechCraft_Studio_
5:32
Tech Craft Studio
Рет қаралды 60
Урок 01 | Создание кликер игры в Telegram | React JS
32:14
Как управлять высотой текстового поля | Textarea auto resize
4:15
Типичный Веб Разработчик
Рет қаралды 155
小路飞还不知道他把路飞给擦没有了 #路飞#海贼王
00:32
路飞与唐舞桐
Рет қаралды 84 МЛН