2016-12-09 40 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 ' '; 

    } 
} 
相關問題