所以我正在研究这款基于数学控制台的游戏。要阅读我正在阅读的这本书的章节。
我希望能够在使用no选项后退出游戏。
问题是当使用no选项时,程序将循环一次然后退出。我希望程序立即退出。
我尝试添加一个else选项,但它一直给我错误代码:“(26):错误C2181:非法其他没有匹配,如果”
也有人可以告诉我如何添加切换类来为游戏添加更多菜单。这需要更多功能原型吗?
感谢您的所有帮助堆栈溢出,我还在学习如何使用分支语句!
// multiplicationgame.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
void game();
int _tmain(int argc, _TCHAR* argv[])
{
char choice = 0;
game();
while(choice != 'n')
{
cin >> choice;
if (choice == 'y')
cout << "\n\n";
game();
//else
//cout << "later";
//
}
return 0;
}
void game()
{
srand(time(NULL));
int a = rand() % 23;
int b = rand() % 23;
int c = (a * b);
int d = 0;
char choice = 0;
cout <<"What does " << a << " * " << b << " equal?" << endl << endl << endl;
cout << "\n";
while(d != c)
{
if(d != c)
{
cout << "Please enter a number: ";
cin >> d;
}
}
cout << "\n\nCorrect! " << (a * b) << " is the answer!" << endl << endl;
cout << "Play again (Y) or (N)?" << endl;
}
答案 0 :(得分:2)
看起来你错过了一些大括号。改变这个块......
if (choice == 'y')
cout << "\n\n";
game();
......对此...
if (choice == 'y')
{
cout << "\n\n";
game();
}
此外,更改此声明可能会更好......
while(choice != 'n')
{
…
}
......对此...
while(choice == 'y')
{
…
}
这样,只有'y'
才会被视为确认。如果是另一种方式,'n'
以外的任何内容都将被视为确认。