|
13 / 13 / 0
Регистрация: 22.09.2021
Сообщений: 41
|
|
Написать игру, в которой главный герой ходит по лабиринту и ищет клад12.10.2021, 14:08. Показов 20211. Ответов 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++ Написать игру в которой имитируется бросание кубиков
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки.
Добавлены следующие реквизиты типа Булево:
- Буквы;
- Цифры;
- Символы.
Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
|
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей.
Самым главным критерием для. . .
|
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store.
И так:
1. Скачиваем с. . .
|