快速提问(也还是菜鸟,所以可能也很容易回答..)
不管是谁,我正在做一艘战舰游戏,并且我有一些枚举来显示棋盘,以及它的命中与否。

 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 ' ';

    }
}

09-25 22:01