快速提问(也还是菜鸟,所以可能也很容易回答..)
不管是谁,我正在做一艘战舰游戏,并且我有一些枚举来显示棋盘,以及它的命中与否。
enum class EnemyPiece : char{
SHIP = '?', // when read this comes out as EMPTY
HIT = 'X',
MISS = ' ',
EMPTY = '?'
}
目的是在显示面板时,我希望它显示面板的枚举,但是我不希望玩家知道SHIPS的位置,因此我希望它们将其掩盖为空。
有点像,棋盘知道那里有一艘船,但显示为空,直到玩家正确猜出为止。
编辑::对不起,问题是,如何使枚举显示为空,但是当选中时,枚举实际上是SHIP
最佳答案
您必须像这样编写显示功能
enum class EnemyPiece : char{ SHIP, HIT, MISS, EMPTY };
char getCharForDisplay(EnemyPiece e)
{
switch (e) {
case EnemyPiece::SHIP: return '?';
case EnemyPiece::EMPTY: return '?';
case EnemyPiece::HIT: return 'X';
case EnemyPiece::MISS: return ' ';
}
}