Tic-tac-toe游戏图形设计?

时间:2012-01-21 14:12:50

标签: c++ oop graph tic-tac-toe

这是我作业中的一般性问题,我只是想问一些想法或伪代码。

假设我正在使用C ++构建一个tic-tac-toe游戏。我已经拥有的是一个Node类,它包含一个表示当前游戏板状态的const成员数据,以及一个指向包含每个可能的下一步状态的其他节点的指针的const数组。因此,这将是一个有重复节点的有向图(每个节点都有其独特的游戏状态。)。

当我试图生成这样的图时,我遇到了麻烦。看起来我需要使用递归,因为Node类中的所有数据成员都是常量,所以没有办法改变它们。在没有Node重复的情况下,我很难想出一个好主意立即生成这样的图形(我的意思是很容易使它成为一棵树,但它浪费了大量的空间和时间。)。有一点可能有帮助,我可以比较两种不同的游戏状态,我不认为我可以使用<set>以外的任何模板。

因此,如果有人对此有所了解,请随意写下您的想法或伪代码。谢谢

1 个答案:

答案 0 :(得分:0)

我认为你需要检查是否存在:

std::set< Node > checked_node;

bool isNodeChecked( Node ){
    return checked_node.find( Node )!=checked_node.end();
}

您需要为operator =上的operator <std::set等内容加载class Node;

std::unordered_map也可能有用。

(虽然在我看来,tic-tac-toe状态可以用0到3 ^ 9的非负整数表示。这样一个std :: set就足够但你需要额外的编码解码函数