带有无限局面的井字游戏的最佳数据结构

时间:2018-07-26 05:23:02

标签: algorithm data-structures

假设我正在设计一个在无限台上玩的井字游戏。成功将三个标记放在水平,垂直或对角线上的玩家获胜。  代表它的最佳数据结构是什么? 我只能想到哈希表来记录位置。对于每个新位置,检查其周围环境以评估获胜。

还有其他更好的主意吗?

1 个答案:

答案 0 :(得分:1)

尽管您拥有无限局面,但仍应为游戏分配坐标。坐标可能是从0到很大的数字。

现在,您的坐标实际上是无限的。为什么不使用简单的坐标字典? C ++:

std::map<std::pair<long, long>, MySquare> m;

例如,您正在(460,670)上,您要检查(461,671)。只需检查(461,671)是否在m中,否则就无需添加新条目。

这种非常简单的设计很健壮,因为它仅在确实需要时才分配内存。

不要让自己过于复杂。

相关问题