我正在课堂上为初学者编写一个基于文本的游戏,我需要一些快速的帮助。
案例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";
}
我该怎么做呢。
答案 0 :(得分:0)
从您的break
语句和字符串中猜测,您处于循环中,不断询问输入,然后根据输入执行某些操作。
了解这一点,你应该首先找出 时你希望这条线运行并从那里开发策略。
E.g。如果您决定第一次有人按下'l'
您希望执行if
声明,那么您需要提醒您是否已经通过那里并在您的情况下进行测试。
如果您认为只有当您在某个房间并且库存中没有(点亮?)灯笼时才会发生这种情况,那么您的支票会变得更复杂,因为它需要测试更多条件,但仍然有效同样的基本原则。
最后,您可能会在else
之前错过if(input == 'r')
,从而导致用户输入"lr"
的可能性,这将在一次迭代中执行两个if
你的循环。