Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
3 / 3 / 0
Регистрация: 05.12.2021
Сообщений: 14

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

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

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

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

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

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

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

8
Just Do It!
 Аватар для XLAT
4195 / 2650 / 654
Регистрация: 23.09.2014
Сообщений: 8,942
Записей в блоге: 3
26.01.2022, 20:36
Цитата Сообщение от Student_2021 Посмотреть сообщение
Реализация крафта
понятия не имею как майнкрафте, но вот модель за 20 минут:
https://rextester.com/QXRT76762

там добавьте перед крафтом сортировку вектора со строками материала,
чтобы порядок в ячейках крафта не имел значения ...
1
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
27.01.2022, 09:05
XLAT,
m["бревно+бревно"] = "доска"
клееная что ли?
0
Just Do It!
 Аватар для XLAT
4195 / 2650 / 654
Регистрация: 23.09.2014
Сообщений: 8,942
Записей в блоге: 3
28.01.2022, 09:35
Цитата Сообщение от Croessmah Посмотреть сообщение
клееная что ли?
да, в корейской MMO уровня AAA так клеют:


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

Не по теме:

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

0
Заблокирован
28.01.2022, 10:18
Мне такие бойцы нужны, на зиму дрова запасать
0
2734 / 888 / 331
Регистрация: 10.02.2018
Сообщений: 2,097
28.01.2022, 12:03
Лучший ответ Сообщение было отмечено 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
Заблокирован
28.01.2022, 13:33
Не играл в манкрафт.
Ygg, а перевернутые рецепты ? зеркальные ? они как считаются ? )

Добавлено через 2 минуты
Цитата Сообщение от Ygg Посмотреть сообщение
В майнкрафте не только порядок имеет значение, но и положение на столе крафта.
правой рукой держишь молоток, левой гвоздь - получается кольцо.
левой рукой молоток, правой гвоздь - получается лопата )) так ?
0
2734 / 888 / 331
Регистрация: 10.02.2018
Сообщений: 2,097
28.01.2022, 14:29
Цитата Сообщение от SmallEvil Посмотреть сообщение
правой рукой держишь молоток, левой гвоздь - получается кольцо.
левой рукой молоток, правой гвоздь - получается лопата )) так ?
Да, вроде того)
Например, для создания кирки и топора используются одинаковые ресурсы, но располагаются на поле крафта по разному.
Отражение и повороты не считаются корректными, допускается только смещение всех элементов в рамках поля крафта. Хотя что-то сомнения меня начинают одолевать на счёт отражений по горизонтали, вроде тот же топор и так и эдак крафтится. Нужно уточнить на вики:
6. Если рецепт несимметричен относительно вертикальной оси, его можно сделать любым образом. Например, рецепт мотыги можно получить из рецепта лопаты добавлением материала как слева, так и справа. Рецепты, обладающие этим свойством: топор, мотыга, огниво, ножницы, ступени, удочка и лук.
Да, предложенный мой алгоритм не совсем подходит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.01.2022, 14:29
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru