Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Консольная РПГ. (MUD-подобная). - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массивы, поиск последовательных элементов, создающих прогрессию http://www.cyberforum.ru/cpp-beginners/thread561812.html
Привет! Программа заключается в том, что она ищет в массиве три последовательных элемента которые создают арифметическую или геометрическую прогрессию. Но у меня вылетает ошибка при запуске...
C++ что плохого если я делаю ф-ю main типа void привет всем, кто может объяснить, что плохого если я делаю ф-ю main типа void ? http://www.cyberforum.ru/cpp-beginners/thread561797.html
C++ синхронизация в windows
есть два консольных приложения, родительского и дочернего процесса (должны ли они быть консольными), хочу обменяться между ними данными.Выбрал самый сложный путь. Использую пейпы в комментариях я...
C++ Функции
Здравствуйте!!! =) помогите пожалуйста с одной задачкой!)) Написать программу для вычисления суммы четных положительных элементов массивов А(30), В(30), С(30), используя прототип функции.
C++ Пытаюсь вывести латинские буквы но не могу реализовать затею http://www.cyberforum.ru/cpp-beginners/thread561760.html
Доброе время суток необходимо сделать лабораторную работу но не могу понять как составить условие. Дана строка из 20 символов. Вывести из нее на печать только строчные буквы латинского алфавита ...
C++ Удаление элементов Помогите пожалуйста надо из одномерного динамического массива удалить n элементов начиная с номера к, ниже программа на формирование и вывод одном динамич массива....буду очень признателен, нужно... подробнее

Показать сообщение отдельно
TrueOman
0 / 0 / 0
Регистрация: 29.04.2012
Сообщений: 19

Консольная РПГ. (MUD-подобная). - C++

29.04.2012, 23:38. Просмотров 2725. Ответов 19
Метки (Все метки)

Здравствуйте. Недавно я начал изучать C++. И для хорошего усвоения пройденного материала решил написать консольную MUD-подобную РПГ. Кто не знаком с таковыми, и лень читать на wiki, объясню На примере:

Вы очнулись в страшной темной комнате.
Что предпринять?
1. Выйти через дверь.
2. Вылезти через окно.


Так вот, все это дело что написано курсивом отображается в консоли. Человек вводит цифру выбранного им варианта и переходит в новую "локацию", в которой также несколько вариантов действий. И таким образом мне хотелось бы описать целый мир.
Вот код который я написал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/* 
Консольная РПГ. Название неизвестно.
location+number() - функция локации "number"
location+number+view() - функция осмотра на локации "number"
*/
 
#include<iostream>
#include <stdlib.h>
using std::cout;
using std::endl;
using std::cin;
 
class Environment
{
public:
    void location1()
    {
        cout << "У вас раскалывается голова. Вы открываете глаза, и видете перед собой лишь засыпанное мелкими облачками голубое небо. "
             << "Приподнявшись вы понимаете что находитесь на побережье. При попытке что либо вспомнить отдает легкой болью в висках.\n\n"
             << "Ваши действия:\n1.Осмотреться.\n\nВвод: ";
    }
 
    void location1view()
    {
        cout << "Осмотревшись вы увидели что на севере, в воде, не далеко от берега виднеется потерпевший крушение корабль."
             << " На западе расположены огромные скалы. В свою очередь на востоке виден лишь уходящий за горизонт пляж."
             << " На юге начинается тропинка ведущая прямиком в джунгли.\n"
             << "Ваши действия:\n1.Идти на запад\n2.Идти на юг\n3.Направиться на восток\n4.Идти на север\n"
             << "\nВвод: ";
    }
    void location2()
    {
        cout << "Вы подплыли к кораблю. Забравшись на его остатки после крушения вам в глаза сразу же бросился средних размеров сундучок."
             << " Вот только без ключа он не откроется.\n"
             << "Ваши действия:\n1.Осмотреться.\n2.Поиск предметов на локации.\n3.Плыть обратно.\n\nВвод: ";
    }
};
 
int main()
{
    int Entered; // Вводимые данные
    setlocale(LC_ALL,"Russian");
 
    Environment locations;
    locations.location1();
    cin >> Entered;
    if (Entered=1)
    {
        system("cls");
        locations.location1view();
        cin >> Entered;
        if (Entered=4)
        {
            system("cls");
            locations.location2();
        }
    }
    else 
    {
        cout << "Ошибка ввода" << endl;
    }
    system("PAUSE");
    return 0;
}
Как вы наверное поняли, если читали код что на этом этапе кода - доступен только один путь (Начало - оглядеться - север). Так вот, при всем этом возник вопрос. Как организовать обратный путь с "севера" в "начало"? Если писать if'ами то это будет продолжатся до бесконечности. Если не понимаете о чем я то привожу опять же пример:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
...
if (Entered=4) //Если пользователь выбирает идти на север (по условию location2view)
    {
        system("cls");
        locations.location2();
                cin >> Entered;
                if (Entered=3) // Если игрок выбирает плыть обратно
                {
                     locations.location1();
                     cin >> Entered;
                     //...и дальше тут пойдут бесконечные if'ы
                }
    }
Помогите реализовать вот это перемещение между локациями... ума не приложу как это сделать. Большая просьба писать подробно так как я ещё совсем новичок, а лучше с примерами. Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru