2016-12-09 38 views
0

快速的问题(也还是菜鸟所以也许简单的答案太..) Anywho,我工作的一艘战舰的比赛,我有一个显示板枚举,以及其是否命中或错过等。对不同的结果使用具有相同值的枚举? C++

enum class EnemyPiece : char{ 
    SHIP = '?', // when read this comes out as EMPTY 
    HIT = 'X', 
    MISS = ' ', 
    EMPTY = '?' 
} 

其目的是当显示板子时,我希望它显示板子的枚举,但我不想让玩家知道SHIPS在哪里,所以我希望它们掩盖为空。

有点类似,董事会知道那里有一艘船,但显示为EMPTY,直到玩家猜对。

编辑::对不起,问题是,如何使枚举显示空,但检查时枚举实际出货

+1

当他们有你的显示功能相同的价值,有一个不可区分的。我的意思是你有'EnemyPiece :: SHIP == EnemyPiece :: EMPTY'。 – Jarod42

+1

不知道在这里问什么问题 –

+0

这些值是相同的,所以他们不能被区分。 –

回答

2

你必须写像

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

    } 
} 
相关问题