代码之家  ›  专栏  ›  技术社区  ›  derek

无限板tic-tac-toe博弈的最佳数据结构

  •  1
  • derek  · 技术社区  · 6 年前

    表示它的最佳数据结构是什么? 我只能想到哈希表来记录位置。对于每个新位置,检查其周围环境,以评估是否获胜。

    还有更好的主意吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   SmallChess    6 年前

    虽然你有一个无限的棋盘,你仍然应该为你的游戏分配坐标。坐标可能是从0到一个很大的数字。

    现在,你有一个实际上无限的坐标。为什么不提供一个简单的坐标字典呢?C++:

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

    例如,您在(460670)上,您想检查(461671)。只需检查(461671)是否在 m

    这个非常简单的设计是健壮的,因为它只在您真正需要的时候分配内存。

    别把自己弄得太复杂了。