c++ - 对不同的结果使用具有相同值的枚举? C++

标签 c++ enums

快速问题(也仍然是菜鸟,所以可能也很容易回答..) 任何人,我正在开发一款战舰游戏,我有显示棋盘的枚举,以及它是命中还是未命中等。

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

目的是在显示棋盘时,我希望它显示棋盘的枚举,但我不想让玩家知道 SHIPS 在哪里,所以我希望它们被屏蔽为空。

有点像,棋盘知道那里有一艘船,但显示为 EMPTY,直到玩家猜对为止。

EDIT::抱歉,问题是,如何让枚举显示为 EMPTY,但检查时枚举实际上是 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 ' ';

    }
}

关于c++ - 对不同的结果使用具有相同值的枚举? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41066107/

相关文章:

.net - 如何在 F# 中枚举枚举/类型

c++ - 如何从多个静态库中创建一个静态库?

C++:为什么 iter++->empty() 合法?

c++ - 构造函数中的冒号是什么意思?

c++ - 循环枚举值的实现

c# - 在类之间共享枚举

c++ - OpenCascade中的奇怪段错误

c++ - 从 C++ 调用时,MSSQL 服务器存储过程不返回输出参数

swift - 在核心数据中保存没有原始值的快速枚举

JAVA字符串转换成对应的枚举?