我正在研究一個十五個難題,並試圖在移動瓷磚時存儲棋盤的不同狀態。如何存儲一系列陣列
由於我將試圖用IDFS/IDFSA *搜索算法設置難題,我需要一種方法來存儲每個數組。
這對我來說都是非常新的,我會喜歡一些關於如何做到這一點的指針。如果需要,可以鏈接代碼,我必須基於此。謝謝你能幫助我的任何事情,我迷路了!
我正在研究一個十五個難題,並試圖在移動瓷磚時存儲棋盤的不同狀態。如何存儲一系列陣列
由於我將試圖用IDFS/IDFSA *搜索算法設置難題,我需要一種方法來存儲每個數組。
這對我來說都是非常新的,我會喜歡一些關於如何做到這一點的指針。如果需要,可以鏈接代碼,我必須基於此。謝謝你能幫助我的任何事情,我迷路了!
你的問題被標記爲C++,所以我假設你想用該語言的答案。您可以使用以下類型來存儲板狀態:
typedef array<array<int, 4>, 4> BoardState;
這是一個整數的4x4「矩陣」。我會有0意味着空的和其他一些n(1 < = n < = 15)意思是第n件是在該位置。
對於A *搜索,您只需要找到一個很好的啓發式方法,例如曼哈頓與最終位置的總曼哈頓距離。之後,這只是一個簡單的教科書實施。 http://en.wikipedia.org/wiki/Best-first_search
確定爲boardstate:
typedef std::array<std::array<int 5>, 5> boardstate;
並保持整個系列:
std::vector<boardstate> timeseries;
您可以添加在一系列元素,就像與你喜歡
時間任何其他元素矢量int t;
boardstate currentstate;
timeseries[t]=currentstate;