制作一行,基于文本的游戏

时间:2014-05-05 19:56:09

标签: c++ text

我正在课堂上为初学者编写一个基于文本的游戏,我需要一些快速的帮助。

案例1:

        cout << "\n You are in a underground room you, look around there is no way back up to the  hole you fell through. \n";
        cin >> input;



    if ( input == 'l'){
        cout << "\n You turn left and see a dull lanturn.\n";
            cin>>input;
                if ( input == 'g')
                    cout << "\n You grab the dull lanturn\n";
                        cin>>input;
                            if ( input == 'u')
    cout << "\n You turn the lanturn on, it casts a bright light. \n";      
        }

         if ( input == 'r')
            cout << "\n You turn right, and see nothing of interest.\n";

        else if (input == 'n')
            room = 2;

        else
            cout<<"input not recognized"<<endl;
        break;

我只想让这一行运行一次

                 if ( input == 'l'){
        cout << "\n You turn left and see a dull lanturn.\n";
            cin>>input;
                if ( input == 'g')
                    cout << "\n You grab the dull lanturn\n";
                        cin>>input;
                            if ( input == 'u')
    cout << "\n You turn the lanturn on, it casts a bright light. \n";      
        }

我该怎么做呢。

1 个答案:

答案 0 :(得分:0)

从您的break语句和字符串中猜测,您处于循环中,不断询问输入,然后根据输入执行某些操作。

了解这一点,你应该首先找出 时你希望这条线运行并从那里开发策略。

E.g。如果您决定第一次有人按下'l'您希望执行if声明,那么您需要提醒您是否已经通过那里并在您的情况下进行测试。

如果您认为只有当您在某个房间并且库存中没有(点亮?)灯笼时才会发生这种情况,那么您的支票会变得更复杂,因为它需要测试更多条件,但仍然有效同样的基本原则。

最后,您可能会在else之前错过if(input == 'r'),从而导致用户输入"lr"的可能性,这将在一次迭代中执行两个if你的循环。