3 / 3 / 0
Регистрация: 05.12.2021
Сообщений: 14
1

Реализация крафта, как в майнкрафте на С++

26.01.2022, 16:32. Показов 1402. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не знаю, как это реализовать есть несколько идей, но проблема в нескольких вариантах крафта. Например, крафт досок, так как элемент крафта 'дерево', можно поместить в несколько ячеек для получения досок. Аналогично и крафт палок, полублоков и прочего.

Коротко про код: Вектор или масив Table(поле крафта). Каждый элемент имеет свой ID. Дерево – 1, Доски – 7, Палки – 8. Эти id используются для ввода в поле крафта.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.01.2022, 16:32
Ответы с готовыми решениями:

Как средствами движка сделать генерацию мира как в майнкрафте?
Всем привет! Мне очень интересно как средствами движка сделать генерацию мира как в майнкрафте и...

Реализация TextBox как в Outlook
Подскажите пожалуйста как мне реализовать TextBox как в Outlook поле кому когда имена как бы...

Реализация сайта. Как лучше?
Я полный новичок. Хочу двуязычную версию личного сайта. Контент абсолютно разный, поэтому, это...

Реализация листов как в Excel
Доброго времени суток, хочу реализовать систему листов как в Excel и хотел спросить как будет лучше...

Реализация системы пагинации как в ВК
Не подскажите, как реализовать систему пагинации примерно как в ВК. То есть при путешествии по фото...

8
Just Do It!
4009 / 2379 / 638
Регистрация: 23.09.2014
Сообщений: 7,573
Записей в блоге: 2
26.01.2022, 20:36 2
Цитата Сообщение от Student_2021 Посмотреть сообщение
Реализация крафта
понятия не имею как майнкрафте, но вот модель за 20 минут:
https://rextester.com/QXRT76762

там добавьте перед крафтом сортировку вектора со строками материала,
чтобы порядок в ячейках крафта не имел значения ...
1
Неэпический
18098 / 10684 / 2061
Регистрация: 27.09.2012
Сообщений: 26,890
Записей в блоге: 1
27.01.2022, 09:05 3
XLAT,
m["бревно+бревно"] = "доска"
клееная что ли?
0
Just Do It!
4009 / 2379 / 638
Регистрация: 23.09.2014
Сообщений: 7,573
Записей в блоге: 2
28.01.2022, 09:35 4
Цитата Сообщение от Croessmah Посмотреть сообщение
клееная что ли?
да, в корейской MMO уровня AAA так клеют:


на этой игруле они уже 2 ярда уе сняли,
но если вы умнее их(честно, я по доброму к вам),
вы можете легко придумать и добавить свои правила крафта.
0
Croessmah
28.01.2022, 10:07
  #5

Не по теме:

Цитата Сообщение от XLAT Посмотреть сообщение
да, в корейской MMO уровня AAA так клеют
Зачем в такое играть, если тебе уже не 15 лет?

0
3670 / 2608 / 749
Регистрация: 29.06.2020
Сообщений: 9,598
28.01.2022, 10:18 6
Мне такие бойцы нужны, на зиму дрова запасать
0
2539 / 856 / 321
Регистрация: 10.02.2018
Сообщений: 2,007
28.01.2022, 12:03 7
Лучший ответ Сообщение было отмечено Student_2021 как решение

Решение

Цитата Сообщение от XLAT Посмотреть сообщение
там добавьте перед крафтом сортировку вектора со строками материала,
чтобы порядок в ячейках крафта не имел значения ...
В майнкрафте не только порядок имеет значение, но и положение на столе крафта.
Стол крафта - квадратное поле ячеек 3 на 3.
Рецепты крафта - расположение некоторых материалов на столе крафта.
Те же самые материалы, но расположенные иначе дают другой результат крафта, создаётся другая вещь.
Обычно задействуются всё поле крафта (удочка), но иногда для рецепта достаточно поля 2 на 2 (верстак), 3 на 2 (миска), 3 на 1 (плита) и другие подобные.

Проблема у автора, как я понимаю, в рецептах требующих не полного стола (3 на 3). Дело в том, что для таких рецептов на столе 3 на 3 можно несколькими способами выложить материалы правильно сохранив их взаимное расположение. Все эти рецепты считаются правильными и идентичными. Например "плита" требует расположить три материала в ряд (3 на 1), этот ряд можно расположить вверху стола, по середине или внизу - все варианты правильные.

Добавлено через 1 час 33 минуты
Я бы попробовал проверять относительное расположение вещей. В качестве точки отсчёта можно использовать первый материал на столе (в рецепте).

1. Можно сканировать все ячейки стола (рецепта) слева направо и сверху вниз. Первая непустая ячейка определяет материал и начало отсчёта (x0, y0). Если ID материала первой непустой ячейки стола не соответствует ID материалу первой непустой ячейки рецепта, то рецепты не совпадают. Если материалы совпадают, то продолжаем сравнение дальше.

2. Продолжаем сканирование и ищем вторые непустые ячейки стола (ID1, x1, y1) и рецепта (ID1', x1', y1'). Как и для первой ячейки сравниваем материалы, но теперь ещё добавляем сравнение относительных координат (x1-x0) и (x1'-x0'), (y1-y0) и (y1'-y0'). Если всё совпадает, то продолжаем сравнение дальше.

3. Продолжаем сканирование и сравнение пока все ячейки не закончатся.
2
3670 / 2608 / 749
Регистрация: 29.06.2020
Сообщений: 9,598
28.01.2022, 13:33 8
Не играл в манкрафт.
Ygg, а перевернутые рецепты ? зеркальные ? они как считаются ? )

Добавлено через 2 минуты
Цитата Сообщение от Ygg Посмотреть сообщение
В майнкрафте не только порядок имеет значение, но и положение на столе крафта.
правой рукой держишь молоток, левой гвоздь - получается кольцо.
левой рукой молоток, правой гвоздь - получается лопата )) так ?
0
2539 / 856 / 321
Регистрация: 10.02.2018
Сообщений: 2,007
28.01.2022, 14:29 9
Цитата Сообщение от SmallEvil Посмотреть сообщение
правой рукой держишь молоток, левой гвоздь - получается кольцо.
левой рукой молоток, правой гвоздь - получается лопата )) так ?
Да, вроде того)
Например, для создания кирки и топора используются одинаковые ресурсы, но располагаются на поле крафта по разному.
Отражение и повороты не считаются корректными, допускается только смещение всех элементов в рамках поля крафта. Хотя что-то сомнения меня начинают одолевать на счёт отражений по горизонтали, вроде тот же топор и так и эдак крафтится. Нужно уточнить на вики:
6. Если рецепт несимметричен относительно вертикальной оси, его можно сделать любым образом. Например, рецепт мотыги можно получить из рецепта лопаты добавлением материала как слева, так и справа. Рецепты, обладающие этим свойством: топор, мотыга, огниво, ножницы, ступени, удочка и лук.
Да, предложенный мой алгоритм не совсем подходит.
0
28.01.2022, 14:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2022, 14:29
Помогаю со студенческими работами здесь

Как называется такая реализация?
Доброе время суток. С php не работаю, но уверен его возможностей хватит для реализации "скрипта"...

Реализация списка как класса
Нужно записать в список элементы класса. Предусмотреть вставку и удаление элементов. У меня возник...

Реализация слайдера как на Ginza
Добрый день, хотел изготовить слайдер подобный как на сайте Ginza Project. Подобных в интернете...

Реализация выпадающего список, как у Гугла
Подскажите где почитать как реализовать выподающий список (как у гугла) .. Мне нужно чтобы выподал...

Реализация ввода формул как в Word
Необходимо построить график функции по заданной функции (функция должна полность вводиться...

Бот браузерной игры - реализация, как?
Здравствуйте, я только начал осваивать C++ Решил попытаться написать бота для браузерной игры,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru