Найти тему

Краф вещей javascript+css

Аррива, ребята! В статье инвентарь на css+javascript я рассказывал как можно реализовать инвентарь, я не думал, что вы так быстро наберете так много лайков! Пришлось делать как и обещал крафт по типу как в игре minecraft. Долго думал как это все должно работать, изначально пытался сделать крафт отталкиваясь от одномерного массива inventory = [0,0,0,0,0,0,1,1,1]. Но тогда мне придется учитывать положение элементов в разных ячейках инвентаря, то есть в матрице 3х3 при различных положениях предметов, получается один и тот же рецепт.

Поэтому я решил сделать зависимость положений одного предмета от других. То есть перебирая предметы в инвентаре, начиная с первого, записывать в строку его id и положение других предметов ячейках относительно его. Затем полученную строку хешируем, и уже по полученному ключу добавляю предмет, если такой имеется.

Расположение предметов.
Расположение предметов.

Использую данный алгоритм, расположив предметы в данном порядке - должны получить меч.

Теперь у меня есть меч! Хо-хо-хо!
Теперь у меня есть меч! Хо-хо-хо!

Конечно, для вариаций с диагональю, приходится прописывать два ключа для поиска предметов, но с другими вариациями справляется эта методика. Можете попробовать тут, расположив в ряд три дерева как на рисунке ниже.

Должно что-то получится!
Должно что-то получится!
Надеюсь данный пост будет полезен для вас, напомню исходный код можно найти здесь. Если остались вопрос, всегда готов ответить! Спасибо за внимание, до скорых встреч!