我正在C++中创建棋盘游戏(stratego),并且想知道是否它考虑了一个糟糕的做法以从类方法返回一个整数,以便确定在哪个情况下切换语句以向用户显示。返回一个整数以确定要显示哪个switch语句
例如: 在战略中,你不能攻击属于你自己部队的棋子,所以当用户试图这样做时,我有一条信息“你不能攻击你自己的军队”。
如果进行运动同样的事情,这会导致球员跳下板,动太多的空间,等等
每个无效运动有它自己独特的消息,但要避免它们打印Class.cpp文件是播放器移动的验证对象,我有Class.cpp文件将一个整数返回到main()中的switch语句中,该语句被调用。 处理消息如何被调用的最推荐的方式是什么?
class Test
{
public:
Test()
{
}
int Validate_Move(int valid)
{
if (valid > 0 && valid < 5)
{
return 1;
}
else if (valid > 5)
{
return 2;
}
}
};
int main()
{
int entry;
std::cout << "Enter move: ";
std::cin >> entry;
Test obj;
switch (obj.Validate_Move(entry))
{
case 1:
std::cout << "Move is valid" << std::endl;
case 2:
std::cout << "Move is invalid" << std::endl;
default:
std::cout << "Error occured" << std::endl;
}
return 0;
}
这是好的做法,但它可能是最好使用'enum'而不是'int'(或'枚举class'用C++ 11) – dwcanillas
'bool isValid(int valid){if(valid> 0 && valid <5)return true;如果(有效> 5)返回false;的std ::中止(); }',然后'Test obj; if(obj.isValid(entry)){/*...*/}' –
你的程序总体上具有未定义的行为,因为你没有从声明为返回int的函数返回一个值。 –