c++ - 检查数组中消息的最有效方法

标签 c++ arrays c++11

我目前正在用 C++ 开发一个类似国际象棋的游戏,想知道是否有任何模式或好的编程方法来检查类之间的消息。

在我的问题中,我有两个类,一个 boardSquare 类和一个 GameBoard 类 (BoardSquareManager)。 boardsquare 具有以下功能:当您单击一个正方形时, bool 值将设置为 true,表示已单击 boardSquare。目前在 GameBoard 类中,我有一组 BoardSquares,为了检查是否有一个 boardsquare 被点击,我每次检查每个 BoardSquare,看看是否有人被点击,它看起来像这样。

void AGameBoard::CheckMessages()
{
  for (int i = 0; i < 64; i++)
 {
    if (BoardSquareArray[i]->GetWasClicked())
    {

        iClickedTile = BoardSquareArray[i]->GetSquareNum();

        BoardSquareArray[i]->DeactivateClick();

        bTileWasClicked = true;
    }
 }
}

在我看来,我觉得没有必要一直查看整个数组,这样我就可以了解某个图 block 是否已被单击,您知道有更好的方法吗?

感谢所有的回答!

最佳答案

考虑过观察者模式吗? E. Gamma 的经典设计模式书籍包含许多来自实现 GUI 应用程序的模式。其他可能有趣的模式是命令(是否要撤消移动?)、装饰器、命令链、复合、策略、模板方法。我肯定会推荐阅读这本书。

关于c++ - 检查数组中消息的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33844382/

相关文章:

c++ - 旋转一圈后,Opengl 模型矩阵不会绕原点旋转

c++ - 复制/分配 STL 模板,std::less 和 std:greater

JavaScript:将 [a,b,c] 转换为 [a][b][c]

c++ - 如何将字符串添加到 vector (并随后显示它)?

c++ - 为什么在 C++ 中分配对象的地址不会改变?

c++ - 迭代器运算符++重载C++

javascript - javascript中按子数组属性值对对象数组进行排序

python - 使用 Python 抓取 Javascript 创建的动态内容

c++ - C++ 中的互斥量和 lambda 函数

c++ - 使用 lambda 作为 C++ 函数的参数