|
13 / 13 / 0
Регистрация: 22.09.2021
Сообщений: 41
|
|
Написать игру, в которой главный герой ходит по лабиринту и ищет клад12.10.2021, 14:08. Показов 20115. Ответов 130
Нужна помощь по решению задачи.
Задача крайне непосильна для меня. Я был бы признателен если вы мне поможете, но если честно то крайне стыдно просить помощи. Вот текст задачи: "Написать игру, в которой главный герой ходит по лабиринту и ищет клад. Игровой мир представляет собой прямоугольную матрицу связанных между собой комнат. У каждой комнаты есть от одной до четырёх дверей (соответствующих сторонам света). В каждой комнате может быть несколько игровых объектов, с которыми игрок может взаимодействовать по некоторым игровым правилам. Цель – найти ключ и сундук, открыть сундук ключом и получить священный Грааль. Игра выполнена в виде консольного приложения, игрок управляет персонажем, вводя текстовые команды." Детальное описание хода игры. Сначала игрок вводит количество комнат, и программа генерирует лабиринт. Игрок оказывается в одной из комнат лабиринта. При попадании в каждую комнату выводится текст: You are in the room [x,y]. There are [N] doors: [directions]. Items in the room: [items list]. Вместо текста в квадратных скобках выводятся, соответственно, координаты комнаты, количество дверей, направления дверей и список предметов в комнате. После этого игроку предлагается ввести команды: — N, S, W и E перемещают игрока в соответствующем направлении; — get [item] поднимает предмет в комнате и кладет его в инвентарь (кроме сундука); — drop [item] бросает предмет в комнате, убирая его из инвентаря. К объекту chest можно применить команду open, которая сработает только в том случае, если в инвентаре игрока есть объект key. Удачное выполнение этой команды приведет к выигрышу. Проигрыш происходит в случае, когда у игрока кончается лимит шагов, и он умирает от голода в мрачных застенках драконьей пещеры. В дополнительных заданиях понятия «жизненная сила», «здоровье» и «лимит шагов» по сути означают одно и то же. Важно: лабиринт не должен быть непроходимым. Не должно быть ситуаций, когда ключ или сундук находятся в изолированной от игрока части лабиринта, или путь из начальной позиции до ключа и сундука больше лимита шагов. Надеюсь на вашу понимание. Есть ещё дополнительные , но можно и без них обойтись.
0
|
|
| 12.10.2021, 14:08 | |
|
Ответы с готовыми решениями:
130
Мы создаем игру, в которой главный герой маг. Он может убивать монстров заклинаниями, но для каждого монстра треб Андрей играет в новую игру, в которой герой сражается с монстрами Вы пишете игру, в которой герой перемещается по экрану только влево и вправо |
|
13 / 13 / 0
Регистрация: 22.09.2021
Сообщений: 41
|
|
| 19.10.2021, 19:49 [ТС] | |
|
Думаю да, то что покупается за три доставляется тем что ниже в массиве. Как я понял снегурочка толжна сделать быстро чтоб дед полетел развозить. Ну и снегурочка должна ещё посылку быстро наделать чтобы дед вторую забрал тогда когда вернётся. Если дед долго летит то снегурочка может и два подарака сделать, или как я понял долгий подарок. В общем ничего толком не понятно, но очень интересно.
Добавлено через 2 минуты Время позднее, мне кажется лучше делать что-то делать утром чем ночью, полусонным. Добавлено через 1 минуту Ааа разобрать игру на объекты ? Я всё правильно понимаю ?
0
|
|
|
Just Do It!
|
||
| 19.10.2021, 19:53 | ||
|
этот процесс называется Проектированием Сверху-Вниз. образец кода есть в "С++ Точка старта". ваш черновик должен быть с++ компилируемым.
0
|
||
|
13 / 13 / 0
Регистрация: 22.09.2021
Сообщений: 41
|
||||||
| 20.10.2021, 19:22 [ТС] | ||||||
|
Это моя первая попытка. И эксперимент получается не не неудачный.
Какие-то цифры и эти штуки которые табуляцию делают и перенос строки работают, но почему-то выводятся. Я же всё правильно понял , мысли в правильном направление или фигня получается ?
1
|
||||||
|
фрилансер
6510 / 5769 / 1135
Регистрация: 11.10.2019
Сообщений: 15,410
|
||
| 20.10.2021, 19:27 | ||
|
Forest155, ескейп последовательности используют бэкслеш, а не прямой. И пробел не нужен:
\n\tstd::endl
1
|
||
|
Гвоздь Задиров
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
|
||||||||
| 20.10.2021, 21:12 | ||||||||
![]() Короч поковырялся. Изначально виделась задача коммивояжёра, но, видев краем глаза решение из #46, - думалось что чёт слишком лаконично там для этого. Отмёл комм~ и стал ковыряться дальше. Сначала понял каким должен быть задовый элемент. Потом, проанализировав некоторую кучу рандома, всплыли две простые разные закономерности-стратегии для остального: 0) отправлять деда как можно дальше 1) давать снегурке как можно проще Я решил не мудрить с их объединением и использовал обе по разу сразу: Кликните здесь для просмотра всего текста
И это сработало! (для тестилки по крайней мере)Вот тут вообще не уверен в правильности, т.к. решение только на основе анализа не особо-то и большой выборки. Я вообще не мастер доказательств, но если будет опровержение - это будет хорошо. Anyway, щас уже буду смотреть в "ответы" (т.е. в решение в #46) и изучать/сравнивать. //да, до этого не изучал - сам хотел решить сначала
1
|
||||||||
|
392 / 337 / 66
Регистрация: 14.10.2014
Сообщений: 1,538
|
|
| 20.10.2021, 21:44 | |
|
Forest155, если актуально, то могу скинуть ссылку на свой репозиторий, где лежит вот прям практически то, что нужно по заданию. Если вкратце, то наткнулся я пару лет назад в ютубе на видео - проект лабиринт, там мужик как раз показывал, как сделать уровни. Их связать друг с другом чтоб своеобразная заготовка под игру получилась.
Я всё хотел этот проект допилить напильником и сделать более менее нормальным (через буфер консольный и ООП прикрутить, ну чтоб совсем всё по феншую было) и в будущем планирую дальше развить его (если совсем лень не поборет меня - сейчас банально некогда)
0
|
|
|
13 / 13 / 0
Регистрация: 22.09.2021
Сообщений: 41
|
|
| 21.10.2021, 09:05 [ТС] | |
|
Скидывайте, посмотрим
0
|
|
|
Just Do It!
|
||||
| 21.10.2021, 09:59 | ||||
|
вы всё же взялись проектированием снизу вверх, что не есть хорошо. а хорошее проектирование это сверху вниз. И всё же сделайте это: согласно заданию из вашего первопоста вам понадобятся следующие объекты: 1. комната. 2. лабиринт. 3. гуй. 4. игра. 5. система визуализации(просто набор статических функций инкапсулированных в структуре - вариант для консоли). я хотел бы чтобы такое перечисление сделали вы, а не я .... для всех этих объектов сделайте типы(структуры - они же классы), из которых уже можно будет создавать сами объекты. сделайте эти типы для начала хотя бы с одним свойством и одним методом, которые из вашего имхо будут самыми важными. Добавлено через 5 минут смысл же совсем в другом. или что не так? я, например, тоже могу дать готовое свое решение, и что? автор будет смотреть на код, как из из народной поговорки: "как баран на новые ворота".
0
|
||||
|
13 / 13 / 0
Регистрация: 22.09.2021
Сообщений: 41
|
|
| 21.10.2021, 10:09 [ТС] | |
|
Мне почему-то казало это и есть верх, так как из главного файла всё обычно происходит. Видимо я ошибался.
По поводу создания объектов я начал с первого, как мне казалось это главное меню, именно потому что когда включается игра первое что появляется это главное меню. Потом я думал что нужна будет лабиринт с комнатами, её наполнение и гг уже под конец. А что значит гуй (он четвертым пунктом) ?
0
|
|
|
Just Do It!
|
|||
| 21.10.2021, 10:26 | |||
|
или: гуй - GUI : Графи́ческий интерфе́йс по́льзователя, (англ. graphical user interface, GUI) — система средств для взаимодействия пользователя с электронными устройствами, основанная на представлении всех доступных пользователю системных объектов и функций в виде графических компонентов экрана... сделайте этот шаг. Добавлено через 3 минуты Forest155, было бы хорош, чтобы я как попугай не повторял одно и тоже. Forest155, Прочитайте записку "С++ Точка старта" Пункт 0. Прочитайте 7 раз.
1
|
|||
|
13 / 13 / 0
Регистрация: 22.09.2021
Сообщений: 41
|
|
| 21.10.2021, 10:34 [ТС] | |
|
Я и до этого читал. И кажется понял что не умею им (интернетом я имею в виду) пользоваться, надо учится. Просто гуи может всё что угодно означать, ну тогда мне так казалось. Извините меня если достал, я правда не хотел никого доставать вопросами.
0
|
|
|
Just Do It!
|
||
| 21.10.2021, 11:16 | ||
|
2. в адресной строке вбивайте запрос - буквально по буквам, то что вам неясно. справочная информация по деталям ищется лёгко, и если для понимания там чаво то не будет хватать, то пишите вопрос сюда - на форум: если вопрос без упоминания этой(#1) задачи, то лучше в вашей созданной новой теме. Forest155, С++ щас вам нужен в объеме 0.001% щас вам нужно сделать общую декомпозицию. что именно - см. выше мои посты. Например, если вам нужно спроектировать лес, то вы видите, что лес не является монолитным объектом, а состоит из деревьев. Разные деревья имеют разные листья и цвет коры и структуру веток и т.п. Это и есть декомпозиция.
1
|
||
|
392 / 337 / 66
Регистрация: 14.10.2014
Сообщений: 1,538
|
||
| 21.10.2021, 11:36 | ||
|
А смысл - да просто интересно мнение окружающих на счёт моей поделки. Ну и естественно, если у кого-то возникнут вопросы - всегда готов ответить почему сделал так, а не по-другому ( ![]() ![]() вот в общем ссылка https://github.com/Recrut-rf/Labyrinth.git
2
|
||
|
Just Do It!
|
|||||||||||||||||||||||
| 21.10.2021, 12:16 | |||||||||||||||||||||||
|
меня смущают кракозябры, а вас? Recrut_rf, раз там у вас уже "window.h", а файлов много, то хорошо бы, чтобы там был ексешник. я всегда хочу быстро убедиться в том, что стоит ли мне ваще смотреть код ![]()
Имя идентификатора избыточно! по мне лучше так:
отличный код, ибо он мне нравится. но положить инициализатор в конструктор уж сильно просится...
0
|
|||||||||||||||||||||||
|
392 / 337 / 66
Регистрация: 14.10.2014
Сообщений: 1,538
|
|
| 21.10.2021, 12:16 | |
|
XLAT, за критику спасибо, кодировку подправил. Екзешник чуть позже добавлю
1
|
|
|
392 / 337 / 66
Регистрация: 14.10.2014
Сообщений: 1,538
|
||
| 21.10.2021, 12:26 | ||
|
1
|
||
|
Just Do It!
|
|||||||
| 21.10.2021, 12:40 | |||||||
![]() Добавлено через 4 минуты Recrut_rf, подсистему движок надо бы положить в неймспейс, чтобы можно было не гадать, например, метод addSymbolAndAttributeToBuffer это метод движка или его забыли положить в движок ... хорошо, когда так, для примера:
0
|
|||||||
|
392 / 337 / 66
Регистрация: 14.10.2014
Сообщений: 1,538
|
|||
| 21.10.2021, 12:40 | |||
![]()
0
|
|||
| 21.10.2021, 12:40 | |
|
Вы пишете игру, в которой герой перемещается по экрану только влево и вправо, а его положение записывают как положение н Главный герой застревает в препятствиях Сделать так, чтобы главный герой не проходил сквозь некоторые спрайты C++ Написать игру в которой имитируется бросание кубиков
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|