Разрабатываем умный SHUFFLE для игры «Пятнашки» на JavaScript

  Рет қаралды 5,091

Елена Литвинова — Искусство Веб-разработки 🛸

Елена Литвинова — Искусство Веб-разработки 🛸

Күн бұрын

В видео будем вместе разрабатывать игру «Пятнашки»: верстка + JavaScript.
❤️ Мой telegram канал: t.me/webelart
❤️ Поддержать развитие канала: / webelart
Небольшой кусочек кода в этом уроке, я позаимствовала у нас на проекте в loveholidays.com с одного мероприятия.
⭐️ Предыдущий урок: • Разрабатываем игру «Пя...
⭐️ Демо: webelart.com/lessons/fifteen_...
⭐️ Исходники на patreon: / 64639057
00:00 введение.
01:51 вспоминаем прошлый урок
04:44 алгоритм умного Shuffle
07:10 реализуем randomSwap
17:20 реализуем мульчи-вызов.
28:44 доработки
На канале я рассматриваю различные темы веб-разработки, на текущий момент: веб-основы, веб-анимации, веб-дизайн.

Пікірлер: 20
@user-tk7qv9rv2c
@user-tk7qv9rv2c Жыл бұрын
Спасибо за то, что доделали до финального варианта, а не оставили, как было в прошлом уроке! Так еще больше понимаешь, насколько ценный материал даете!
@dr.margulis7773
@dr.margulis7773 2 жыл бұрын
Добрый день, Елена! Всегда с нетерпением жду ваши уроки! Так объяснять материал, как это делаете Вы - дано далеко не каждому. Спасибо за ваш бесценный труд! 👏👏👏 👍
@webelart
@webelart 2 жыл бұрын
Спасибо! ❤️
@user-fj8cu3nq9h
@user-fj8cu3nq9h Жыл бұрын
Спасибо огромное за столь познавательное видео, ваш канал стал приятным открытием и хорошей помощью в изучении JS!👍
@nuZdarova
@nuZdarova 2 жыл бұрын
Привет! Спасибо) Очень нравится то что вы делаете, требую ещё :) Дальнейших успехов
@SamusikVitali
@SamusikVitali 2 жыл бұрын
Классный урок!💪
@richardsorge3965
@richardsorge3965 Жыл бұрын
Спасибо за видео, вы просто гений !
@MrSukhopar
@MrSukhopar 2 жыл бұрын
Все у вас было правильно. В оригинальной игре костяшки с числами можно разместить абсолютно рандомно, они же с поля вытаскиваются и перемешиваются перед игрой. Ну и да есть комбинации не решаемые, как у многих других игр)) Но, за вариант беспроиграшный спасибо)
@webelart
@webelart 2 жыл бұрын
Спасибо за комментарий! ❤️ Про игру костяшки не знала, надо поискать :))) По пятнашкам насколько понимаю может быть половина комбинаций из всех возможных - нерешаема, мне понравилось доказательство из этой статьи pyatnashki.wmsite.ru/kombinacyi. В любом случае да, теперь точно можно будет решить :)
@user-sr7my5kl1q
@user-sr7my5kl1q 2 жыл бұрын
Минутка занудства: Усложняете алгоритм перемешивания, вам достаточно определить "пустую" клетку и далее X+/- 1(первые два возможных хода) и Y+/-1(еще два возможных хода) проверить на принадлежность игровому полю и прошлому ходу. нет необходимости перебирать весь массив игрового поля. Да, для игры в пятнашки это не создаст нагрузки, но к сожалению сейчас и ресурсоемкие задачи зачастую решают так же, без оптимизаций совсем, насмотревшись вот таких решений в лоб :)(весь код не смотрел и не слушал, просто за это мозг зацепился пока на фоне играл ваш ролик)
@webelart
@webelart 2 жыл бұрын
Спасибо за комментарий, да можно и так проверить элементы. Это оптимальнее по производительности, особенно если бы мы имели поле 1млн на 1млн клеток. Но опять же как заметили, для игры пятнашки нагрузки не будет, массив 4 на 4. :) В целом мне понравилась идея с перебором, всё в одной функции определить и используя прошлые уже разработанные функции сделать проверку, плюс если вдруг появятся ещё дополнительные валидные поля (хоть это и вряд ли), решение будет работать железно. В любом случае в текущей задачи оба решения норм. А вот про ресурсоёмкие задачи, здесь уже зависит, как писать код и какие ресурсы хотите сохранить и где. Здесь обязательно нужен предварительный анализ. Иногда решение в лоб, особенно если оно выглядит более понятным использовать лучше, чем оптимизированную менее понятную версию. Здесь хорошо ложатся примеры с рекурсией и стеком на цикле. Рекурсивные решения обычно более лаконично и наглядно выглядят, а вот со стеком и циклом может получится более громоздко, но зато более производительно. И в тоже время рекурсия - это крутой инструмент и часто используется в программировании.
@darfil1663
@darfil1663 2 жыл бұрын
Добрый день, было бы прикольно реализовать memory game)
@AnatoliyMir
@AnatoliyMir Жыл бұрын
Лайк! Есть ли смысл писать эту игру на ООП?
@webelart
@webelart Жыл бұрын
Можно по разному реализовывать.
@Tavda
@Tavda 2 жыл бұрын
Перемешивает конечно красиво, но можно было сделать подобное просто в памяти, а уже результат перемешивания отобразить. Но это уже на вкус и цвет.
@webelart
@webelart 2 жыл бұрын
Да, можно по разному :)) Спасибо за комментарий и что про баг рассказали в прошлом видео! ❤️
@Tavda
@Tavda 2 жыл бұрын
@@webelart Накидал свой вариант. Ссылку на репозиторий на гитхабе кидать не буду, потому что ютуб удаляет подобные комментарии. Но если интересно, пользователь fsa, проект html5-fifteen. Там сборка проекта по другому, исходники другие. А вот внешний вид оставил как в уроках.
@webelart
@webelart 2 жыл бұрын
@@Tavda Ваууу! Крутота! 🔥🔥🔥
@Tavda
@Tavda 2 жыл бұрын
@@webelart Кстати, я на github ещё пару простеньких игрушек выкладывал (Sokoban и Snake). Столкнулся с проблемой на мобилках - если управление свайпами делаешь, то картинка прыгает из-за того, что в браузере адресная строка то появляется, то исчезает. Даже не знаю как исправить.
@user-fd8xw7ji2u
@user-fd8xw7ji2u 7 ай бұрын
Перемена местами 14 и 15 делает нерешаемую задачу если нельзя использовать третий ряд снизу. Это был рекламный трюк изобретателей или производителей, обещали деньги за решение.
Учимся писать глубокий merge и сравнение объектов и массивов | Уроки JS
51:35
Елена Литвинова — Искусство Веб-разработки 🛸
Рет қаралды 8 М.
Разбор Promise и создание собственной имплементации MyPromise | JavaScript
50:05
Елена Литвинова — Искусство Веб-разработки 🛸
Рет қаралды 17 М.
How many pencils can hold me up?
00:40
A4
Рет қаралды 17 МЛН
BRUSH ONE’S TEETH WITH A CARDBOARD TOOTHBRUSH!#asmr
00:35
HAYATAKU はやたく
Рет қаралды 18 МЛН
Разрабатываем ToDo лист на React + TypeScript + Zustand со сборкой на ViteJS | Уроки JavaScript
1:50:13
Елена Литвинова — Искусство Веб-разработки 🛸
Рет қаралды 65 М.
Как на самом деле померяли скорость вращения чёрной дыры
20:02
БОРИС БОЯРШИНОВ СО ДНА НАУКИ
Рет қаралды 5 М.
TypeScript от А до Я - часть 1: primitives, objects, array, types, enums, interfaces
44:38
Елена Литвинова — Искусство Веб-разработки 🛸
Рет қаралды 39 М.
Алгоритм бинарного поиска на JavaScript
18:00
Елена Литвинова — Искусство Веб-разработки 🛸
Рет қаралды 8 М.
How many pencils can hold me up?
00:40
A4
Рет қаралды 17 МЛН