【问题标题】:How to store a series of arrays如何存储一系列数组
【发布时间】:2012-03-21 01:41:18
【问题描述】:

我正在研究十五个拼图,并尝试在移动棋子时存储棋盘的不同状态。

由于我将尝试使用 IDFS/IDFSA* 搜索算法设置拼图,因此我需要一种方法来存储每个数组。

这对我来说都是全新的,我希望得到一些关于如何做到这一点的建议。如有必要,可以根据我必须基于的链接代码。感谢您可以帮助我的任何事情,我迷路了!

【问题讨论】:

    标签: c++ arrays multidimensional-array storage


    【解决方案1】:

    您的问题被标记为 C++,所以我假设您想要用该语言获得答案。您可以使用以下类型来存储棋盘状态:

    typedef array<array<int, 4>, 4> BoardState;
    

    这是一个 4x4 整数“矩阵”。我将有 0 表示空,而其他一些 n (1

    对于 A* 搜索,您只需要找到一个好的启发式方法,例如从最终位置到曼哈顿的总距离。之后,它只是一个简单的教科书实现。 http://en.wikipedia.org/wiki/Best-first_search

    【讨论】:

      【解决方案2】:

      好的董事会状态:

      typedef std::array<std::array<int 5>, 5> boardstate;
      

      并持有整个系列:

      std::vector< boardstate > timeseries;
      

      您可以像添加任何其他元素向量一样随时在系列中添加元素

      int t;
      boardstate currentstate;
      
      timeseries[t]=currentstate;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-10-30
        • 1970-01-01
        • 2013-12-22
        • 2018-07-21
        • 2011-03-01
        • 2017-10-18
        • 1970-01-01
        • 2011-09-15
        相关资源
        最近更新 更多