我正在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的函數返回一個值。 –