我正在使用統一成本搜索來製作迷宮解算器,基本上我想要做的是在我的迷宮中存儲房間之間的隨機成本。房間節點之間的存儲成本
數據結構(命名爲細胞):
struct Cell
{
int row;
int column;
vector<Cell*> neighbors;
State state;
};
行和列是在Cell的迷宮矢量的位置,vector<Cell*> neighbors
定義了哪些小區這個特定單元連接到與狀態保持一小區的狀態(已訪問,空白等)。
我所做的是製作Cell結構的屬性,如下所示:vector<int> cost
其中該數組的每個元素都與鄰居元素相匹配。
例如:
0 ######
1 # ##
2 # # #
3 ######
迷宮[1] [1]在它的鄰國矢量:
neighbors[0] = *maze[1][2];
neighbors[1] = *maze[2][1];
它的成本向量現在是:
cost[0] = 5;
cost[1] = 10;
但這種方式做這件事造成了很多問題。
我所想的是,我需要一個成本矩陣將一個節點匹配另一併存儲在矩陣中的成本,這樣的事情:
0 1 2
0[0][2][4]
1[2][0][6]
2[4][6][0]
但爲了做到這一點我怎麼會讓我的矩陣知道哪個單元是哪個?如何取代0和1,我知道它是[0] [0] [0] [1] [0] [2]等。
我需要爲這樣的事情使用3D矢量嗎?如果我這樣做,我寧願避免它,因爲我對3D矢量經驗不足。
看起來應該可以工作,讓我試試看,我會盡快回復您。 – Powerbyte
它的工作,謝謝。 – Powerbyte