|
13 / 13 / 0
Регистрация: 22.09.2021
Сообщений: 41
|
|
Написать игру, в которой главный герой ходит по лабиринту и ищет клад12.10.2021, 14:08. Показов 20111. Ответов 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
Мы создаем игру, в которой главный герой маг. Он может убивать монстров заклинаниями, но для каждого монстра треб Андрей играет в новую игру, в которой герой сражается с монстрами Вы пишете игру, в которой герой перемещается по экрану только влево и вправо |
|
Just Do It!
|
||
| 21.10.2021, 12:52 | ||
|
Recrut_rf,
я думаю вам нужно сделать этот же проект, т.е ту часть, которая отвечает за визуализацию, и для, например, SFML. зачем? чтобы лучше очертить абстракцию движка визуализации. т.е. я в курсе. Например, в любом opengl движке у вас не будет никаких атрибутов, поэтому имена графических методов для/из логики игры должны выглядеть обобщённо, а всё, что касается конкретной аппаратуры должно быть спрятано в недрах реализации энтого класса описывающий графический движок.
0
|
||
|
13 / 13 / 0
Регистрация: 22.09.2021
Сообщений: 41
|
||||||
| 21.10.2021, 13:23 [ТС] | ||||||
|
ЧТо я делаю . Я ничего не понимаю, но вроде как это декомпозиция разбор игры на классы. Пожалуйста не бейте, если не правильно пойду по 100 раз перечитывать всё.
1
|
||||||
|
2692 / 1349 / 485
Регистрация: 08.11.2016
Сообщений: 3,739
|
||
| 21.10.2021, 13:43 | ||
|
Forest155, над этим надо поработать... вмешиваться не хочу (у семи нянек дитя без глазу) но спокойно смотреть на то как комната агрегирует массив лабиринтов... вообще я бы прежде поговорил об агрегации, композиции и наследовании прежде чем переходить к кодированию, а пока что достаточно было бы словесного описания... все-все, не мешаю.
1
|
||
|
13 / 13 / 0
Регистрация: 22.09.2021
Сообщений: 41
|
|
| 21.10.2021, 14:08 [ТС] | |
|
А просто словами написать и всё ? Так вы не мешаете всё нормально. Единственно что меня печалит один факт, что я вашу игру скинул работодателю и меня на собеседование пригласили. Простите что своровал, я конечно пытался понять, но да чот ничо не понял. Зачем я это сделал ? Но меня 100% не возьмут, это очевидно. ПРостите что щас только написал.
Буду теорию читать получается.
0
|
|
|
Just Do It!
|
||||||||||||
| 21.10.2021, 14:28 | ||||||||||||
|
я чуть чуть поправил исходя из соображений:
это пока лишь СКЕЛЕТ прожекта ... Кликните здесь для просмотра всего текста
почему я люблю такие там заголовки?
типа: ///------------------------------------| /// Предмет лежащий в комнате. ///------------------------------------| это предтеча визуального программирования. что там внутри написано даже неважно, но они должны быть яркие, а значит заметные... Forest155, да, и самый главный из текущих к вам вопрос: На сколько этот код труден для вашего понимания???
2
|
||||||||||||
|
2692 / 1349 / 485
Регистрация: 08.11.2016
Сообщений: 3,739
|
||
| 21.10.2021, 14:31 | ||
|
Forest155, да мне не жалко, так если объективно: мой вариант - это говнокод который разве что поставленную (довольно примитивную) задачу выполняет, ну и разве что кое-какой стиль выдержан. Так что, то что утащили - да пожалуйста! - если этот код кому-то поможет на работу устроится я только рад буду.
0
|
||
|
2692 / 1349 / 485
Регистрация: 08.11.2016
Сообщений: 3,739
|
|
| 21.10.2021, 14:38 | |
|
XLAT, у меня как раз разговорный, это у Рекрута (хоть и псевдо) но графика, а я делал четко по заданию в стратпосте.
0
|
|
|
Just Do It!
|
||||
| 21.10.2021, 15:07 | ||||
|
я его уговорил сделать ексешник, а вас ещё не пробовал уговаривать... потому, что generate это глагол, а generation это существительное. Методы это то что нужно сделать, т.е. всегда глагол. А объекты классов, как и сами классы это описатели сущностей, т.е. существительные. это элементарно же, но почему во многих головах на этом бархет, я хз, но догадываюсь.
0
|
||||
|
2692 / 1349 / 485
Регистрация: 08.11.2016
Сообщений: 3,739
|
|
| 21.10.2021, 15:16 | |
|
1
|
|
|
2692 / 1349 / 485
Регистрация: 08.11.2016
Сообщений: 3,739
|
|
| 21.10.2021, 16:27 | |
|
XLAT, у меня Qt community я, по ходу, не могу статически линковать.
Добавлено через 1 минуту хотя странно, на mingw это не должно распространяться Добавлено через 3 минуты попробую руками собрать
0
|
|
|
2692 / 1349 / 485
Регистрация: 08.11.2016
Сообщений: 3,739
|
|
| 21.10.2021, 16:32 | |
|
Должно сработать "консоль не обманет!"
1
|
|
|
Just Do It!
|
||||||||
| 21.10.2021, 17:19 | ||||||||
|
Based on Qt 5.14.1 (MSVC 2017, 32 bit) Built on Feb 5 2020 10:36:21 *.pro
0
|
||||||||
|
2692 / 1349 / 485
Регистрация: 08.11.2016
Сообщений: 3,739
|
|
| 21.10.2021, 17:22 | |
|
XLAT, мне инкрементная сборка подкузьмиля, я .pro подправил а так как .срр изменений небыло и стаиый .ехе на месте был он и не пересобирал, селедка такая
0
|
|
|
Just Do It!
|
||
| 21.10.2021, 17:35 | ||
|
Annemesski,
Qt Creator 5.0.2 Based on Qt 5.15.2 (MSVC 2019, 64 bit) Built on Sep 30 2021 01:26:25 файл с хеллоуволдом вырос до 913кб
0
|
||
|
2692 / 1349 / 485
Регистрация: 08.11.2016
Сообщений: 3,739
|
|
| 21.10.2021, 17:39 | |
|
XLAT, очевидно... перед этим еще и клинап неплохо бы выполнить
0
|
|
|
13 / 13 / 0
Регистрация: 22.09.2021
Сообщений: 41
|
||
| 22.10.2021, 13:55 [ТС] | ||
|
Код понятен , кроме.....
Сейчас я смотрю на него и кое что заметил. Буква L в строке 114 это как я понял это префикс который wchar_t и нужен чтобы китайские и японские символы выводить или я что-то путаю ? А немного понял что L это широкий строковый литерал(содержит любые графические символы). Но я не сильно понял зачем. Также не понял класс, почему он заканчивается на engine ? template создаёт свой собственный тип, в данном случаем класса, о боже не бейте не класса, а шаблон функции. Ниже как я понял это уже сама функция a operator << вроде как становится шаблонным и ещё почему-то возвращает указатель *this. Так, вы мне сделали проектирование как я понял сверху вниз. Но у меня такое чувству что игру делаю не я. А что после проектирование должно идти ? Уже сам непосредственно код или ещё рано ? Добавлено через 3 минуты А ещё я понял что означает __FUNCTION__ Использует название имя функции и выводит его с помощью cout.
1
|
||
|
Just Do It!
|
||||||||||||
| 22.10.2021, 14:12 | ||||||||||||
|
Forest155,
ок. старайтесь всегда использовать кодировки UCS-2 и UTF-8. во избежания вопросов про кракозябры. std::cout это тоже объект класса std::ostream но только для перегруженного метода operator<<(..., но не для объекта engine. template нужен чтобы метод operator<<(... принимал ЛЮБЫЕ ВСТРОЕННЫЕ типы Чтобы рисовать Room, нам потребуется написать специализацию для класса Room: например
метод возвращает объект из которого он был вызван. помните "там" был пункт с "абстракция". Всегда старайтесь абстрагироваться. Т.е. сложные вещи вы прячете под капот, а манипулируйте только кнопочками и рычажками на пульте.
0
|
||||||||||||
| 22.10.2021, 14:12 | |
|
Вы пишете игру, в которой герой перемещается по экрану только влево и вправо, а его положение записывают как положение н Главный герой застревает в препятствиях Сделать так, чтобы главный герой не проходил сквозь некоторые спрайты 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
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|