抖音游戏图形设计

Tic-tac-toe game graph design?

本文关键字:图形设计 游戏      更新时间:2023-10-16

这是我家庭作业中的一个常见问题,我只是想了解一些想法或伪代码

假设我正在使用C++构建一个井字游戏。我已经有了一个Node类,它包含一个表示当前游戏板状态的常量成员数据,以及一个指向其他节点的指针数组,该数组包含所有可能的下一步状态。因此,这将是一个没有重复节点的有向图(每个节点都有其唯一的游戏状态)。

当我试图生成这样一个图时遇到了麻烦。我似乎需要使用递归,因为Node类中的所有数据成员都是常量,所以无法更改它们。我很难想出一个好主意,在没有节点重复的情况下一次生成这样一个图(我的意思是,把它做成树很容易,但它浪费了很多空间和时间。)。有一件事可能会有所帮助,那就是我可以比较两种不同的游戏状态,而且我认为除了<set>之外,我不允许使用任何模板。

所以,如果有人对此有任何想法,请自由写下你的想法或伪代码。感谢

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

std::set< Node > checked_node;
bool isNodeChecked( Node ){
    return checked_node.find( Node )!=checked_node.end();
}

std::set需要重载operator =operator <之类的内容来处理class Node

std::unordered_map也可能起作用。

(尽管在我看来,井字游戏的状态可以用0到3^9的非负整数表示。这样一来,std::集就足够了,但您需要额外的编码-解码函数。