|
0 / 0 / 0
Регистрация: 29.04.2012
Сообщений: 19
|
|||||||||||
Консольная РПГ. (MUD-подобная).29.04.2012, 23:38. Показов 9739. Ответов 19
Метки нет (Все метки)
Здравствуйте. Недавно я начал изучать C++. И для хорошего усвоения пройденного материала решил написать консольную MUD-подобную РПГ. Кто не знаком с таковыми, и лень читать на wiki, объясню На примере:
Вы очнулись в страшной темной комнате. Что предпринять? 1. Выйти через дверь. 2. Вылезти через окно. Так вот, все это дело что написано курсивом отображается в консоли. Человек вводит цифру выбранного им варианта и переходит в новую "локацию", в которой также несколько вариантов действий. И таким образом мне хотелось бы описать целый мир. Вот код который я написал:
0
|
|||||||||||
| 29.04.2012, 23:38 | |
|
Ответы с готовыми решениями:
19
Разработка MUD игры Mud: жанр текстовых игр, использующих Telnet MUD Игра на Delphi... Реальность или фантастика? О_о |
|
Заблокирован
|
|
| 30.04.2012, 00:46 | |
|
Напиши двухмерный массив, который будет твоей картой. Каждая ячейка массива = локация.
Каждая ячейка уже имеет уникальный индекс массива, если надо больше чем индекс - сделай массив на базе структуры, содержащий все необходимые данные при движении на север индекс по вертикали декрементируется на юг инкрементируется при движении на запад индекс по горизонтали декрементируется на восток инкрементируется по аналогии северо-запад и так далее. потом можно все одним switch описать, который будет только определять в каком направлении решил пойти игрок. Попдаешь в локацию - получаешь новые условия для направления Ну это так, в общих чертах. Короче, фантазируй и все получится!!! ![]() Добавлено через 6 минут И вообще пользуйся золотым правилом информатики, которое я придумал: Математика пытается сделать сложное простым Инофматика пытается сделать простое элементарным Короче, не усложняй. Делай как можно проще!!!
2
|
|
|
Заблокирован
|
|
| 30.04.2012, 00:47 | |
|
Что такое "локация" с точки зрения ООП?
Это объект, который имеет свойства: описание локации, список возможных действий внутри локации, и тп. Каждое "действие", которое может выбрать пользователь, находясь внутри локации на самом деле так же является объектом, имеющим свойства: идентификатор локации, которая будет запущена в случае, если пользователь выберет это действие. Локаций может быть множество, но принцип их обработки один и тот же. Что такое мир? Мир, это объект, который по сути является массивом локаций. Где локации имеют текстовые описания, и наборы действий (содержат массивы действий). Активация действия приводит к тому, что персонаж оказывается в другой локации.
0
|
|
|
5 / 5 / 0
Регистрация: 04.01.2012
Сообщений: 41
|
|
| 30.04.2012, 02:47 | |
|
Если честно, то я не понял, зачем для одного cout создавать целый метод класса.
0
|
|
|
0 / 0 / 0
Регистрация: 29.04.2012
Сообщений: 19
|
|
| 30.04.2012, 02:51 [ТС] | |
|
Как то думал о том что бы локации расписывать в массивах. Спасибо большое за подсказку. Начал реализовывать - и сразу же столкнулся с проблемой. Создал массив map[10][10], в нем элементу map[5][5] пытался присвоить функцию локации. Не получилось, так как тип массива - int, а тип функции void. Как с этим быть? Может быть это глупые вопросы, но я ещё совсем новичек.
0
|
|
|
5 / 5 / 0
Регистрация: 04.01.2012
Сообщений: 41
|
|
| 30.04.2012, 02:57 | |
|
Сделайте map классом, а не переменной.
0
|
|
|
0 / 0 / 0
Регистрация: 29.04.2012
Сообщений: 19
|
|||||||
| 30.04.2012, 03:07 [ТС] | |||||||
|
Помогите: Сделал массив не переменной а классом. Теперь компилятор ругается на что то другое. Вот, делал этот пример:
0
|
|||||||
|
Заблокирован
|
||||||||
| 30.04.2012, 03:13 | ||||||||
|
map[x][y]; //где x и y - координаты локации, тогда значение ячейки массива - это индекс локации в массиве локаций. Итого: location[количество_локаций]; //массив локаций map[x][y]; //карта А работа с этими двумя массивами выполняется следующим образом:
Если вернется -1, значит игрок решил закончить игру. В цикле тупо запускается та, или иная локация, которая тупо возвращает индекс следующей локации, которая будет запущена при очередной итерации цикла. Данный подход прост, но не вполне корректен. При этом подходе, каждая конкретная локация знает индексы соседних локаций. Что не есть хорошо. Но для начального уровня вполне приемлемо. И главное - очень просто реализуется. Добавлено через 4 минуты
0
|
||||||||
|
0 / 0 / 0
Регистрация: 29.04.2012
Сообщений: 19
|
||
| 30.04.2012, 03:24 [ТС] | ||
|
Буду разбираться с вашими наставлениями. Спасибо.
0
|
||
|
Заблокирован
|
|
| 30.04.2012, 03:46 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 29.04.2012
Сообщений: 19
|
||
| 30.04.2012, 03:57 [ТС] | ||
|
0
|
||
|
Заблокирован
|
||
| 30.04.2012, 04:06 | ||
|
Рекомендую тебе начать писать свою игру с изучения правил правописания языка с++. Особенное внимание удели теме "массивы на языке с++". Потом "структуры на языке с++", затем "классы на языке с++".
0
|
||
|
0 / 0 / 0
Регистрация: 29.04.2012
Сообщений: 19
|
||
| 01.05.2012, 14:06 [ТС] | ||
|
Добавлено через 22 часа 4 минуты Все пытаюсь разобраться в наставлениях. Никак не получается сделать это передвижение по локациям. Не понимаю где хранить все описание локаций. В массиве не получается. Я начинаю все больше путаться. Дайте пример люди добрые.
0
|
||
|
Заблокирован
|
||||||
| 02.05.2012, 00:25 | ||||||
|
TrueOman, вот, я тебе по быстрому нацарапал простейший рабочий пример на чистом С
Это только костяк, чтобы тебе был понятен принцип. А дальше - просто фантазируй. Как простые функции можно комбинировать для твоих задач.
Когда с С++ разберешься, сделаешь вместо стуктуры класс. Хотя стуктуры экономнее по памяти. И в структуру можешь еще кучу всяких функций напихать и вызывать по мере необходимости как в примере показано. Потом когда перейдешь к перехвату событий будешь тоже самое уже по стрелкам делать. Добавлено через 10 минут Правда забыл добавить, что там в коде нет проверки выхода за пределы массива. Это вообщето обязательная штука. А то будет ошибками тебя валить. Ну это то ты и сам можешь написать. Придумаешь еще к этому какое-нибудь ограничение локаций. Типа: "Ты дошел до дремучего леса, дальше живут только тонкие толли. Они запарят своими занудными высказываниями до смерти" Добавлено через 9 часов 1 минуту Ну дык что? Получается у тебя что-то? Или как?
1
|
||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||
| 02.05.2012, 16:37 | ||
|
IFree Host,
0
|
||
|
Заблокирован
|
||
| 02.05.2012, 19:09 | ||
|
1
|
||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||
| 02.05.2012, 20:41 | ||
|
IFree Host,
0
|
||
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|||
| 02.05.2012, 22:10 | |||
|
2
|
|||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 02.05.2012, 23:33 | ||||||
|
А вот пример как это вижу я.
0
|
||||||
| 03.05.2012, 06:45 | |||||||
0
|
|||||||
| 03.05.2012, 06:45 | |
|
Помогаю со студенческими работами здесь
20
РПГ текстовая рпг Текстовый рпг-квест Задача на создание игры РПГ Разработка кроссплатформенной простой РПГ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
||||
|
Музыка, написанная Искусственным Интеллектом
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 .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1
У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\
А в самом низу файла-профиля. . .
|