2013-02-02 24 views
0

我正在嘗試使用對象,類等來製作井字遊戲。但是,用戶可以輸入一個選項,以便他/她可以設置棋盤的大小。目前,它只能做方形(3x3,4x4等)。(C++)爲井字遊戲動態分配數組

我在白板上畫出了一張圖來解釋我將在下面討論的內容(忽略關於訂單和原始軸的右側,這是針對其他事情的,而且真正需要關注的是桌子和代碼):http://d.pr/i/5CY8

遊戲板的寬度和高度由用戶導入的大小(按數字編號)設置。然後我有兩個for循環每次創建一個指向新Square的指針。數組列表將保存我們的正方形。但是由於數組列表的位置(它位於標題中),我無法在創建時指定二維數組的大小。因此,我需要動態分配大小,以便可以設置數組的大小,以便在輸入大小時保存方塊的數組列表。但是,我無法弄清楚如何做到這一點。

我在Pastebin和Visual Studio 2012中都有代碼。我相信查看Visual Studio文件會更容易,因爲會有很多Pastebin鏈接。

鏈接到Visual Studio文件/上引擎收錄代碼清單(對不起,我打我的鏈接極限!):http://pastebin.com/spH3JaHP

回答

0

它看起來像您使用的是10×10陣列(從一個ArrayList /矢量不同),以存儲你的棋盤狀態。在運行時聲明2-d數組的正確方法是new[]運算符。例如:

// header file 
Square::SquareState ** boardArray; 

// array generation 
int height, width; 
// get height, width 
boardArray = new Square::SquareState*[height]; 
for (int i = 0; i < height; i ++) 
    boardArray[i] = new Square::SquareState[width]; 

然後,您可以使用boardArray作爲任何舊的二維數組。

+0

謝謝!它似乎已經建成沒有錯誤。我會繼續編碼,看看它是否有效。 –