我將以C++結構來代表國際象棋遊戲。我認爲,最好的選擇將是一個樹形結構(因爲在每個深處我們有幾個可能的動作)。遊戲樹的C++實現
這是一個很好的方法嗎?
struct TreeElement{
SomeMoveType move;
TreeElement *parent;
std::vector<TreeElement*> children;
};
如何有效地將這種數據存儲在文件中?有沒有辦法確保整個樹結構將存儲在內存的相同部分,這將允許使用mmap函數?
您不能以某種方式將該結構保存到文件中,因爲它包含指針並使用「vector」。 – 2012-02-19 15:19:56
這些是三個非常廣泛和非常不同的問題,彙集成一個。請不要這樣做。 – 2012-02-19 15:21:46
我會嘗試命名節點(只是使用指針值)並在Depth-first ordersearch中遍歷樹,這樣您可以生成一個有序的1維數組,如:[{node:1,move:..,parent :0},{節點:2,移動:..,父:1},{節點:3,移動:..,父:2},{節點:4,移動:..,父:3}] – arthurprs 2012-02-19 15:26:36