2010-11-23 45 views
2

製作生命遊戲我需要一個30x20(X * Y)的網格。問題是(我有另一個問題),C#數組是行,列。所以當我使用CursorPosition()進行繪製時,我需要將它交換,因爲它首先需要列。 有沒有什麼方法可以將其反轉,以便我可以像這樣使用?如何有列,行數組(反之亦然)

int [,] Array = new int[30,20]; 
Console.SetCursorPosition(29,19) // now its vice versa, I would need to use 19,29. 

回答

3

我認爲,這是純概念(C#陣列既不行/列或COL /行即達顯影劑)和歸結爲迭代的陣列中任一深度優先或廣度優先方式例如

//Breadth-first 
for(int x = 0; x < col.Length; x++) 
{  
    for(int y = 0; y < row.Length; y++) 
    {    
    }  
} 

//Depth-first 
for(int y = 0; y < row.Length; y++) 
{  
    for(int x = 0; x < col.Length; x++) 
    {  
    }  
} 
+0

看MSDN - 它是真正的行,列 – Loj 2010-11-23 07:43:33

+1

「概念」在這裏是最關鍵的詞在一起,他們定義5 ,MSDN中還有6,7D陣列?考慮將二維數組視爲行/列只是讓自己難過。 – Rob 2010-11-23 08:27:38

0

起初我傾向於回答不作爲參數Console.SetCursorPosition位置參數。但是當我記得C#有命名參數太類似這樣的工作。

int a = 10; 
int b = 20; 
Console.SetCursorPosition(top: a, left: b); 

這是你能得到的最接近的,如果你想知道爲什麼,搜索字詞上述

0

你需要的是一個數據結構來存儲日期與X的關係,y座標。您可以不必爲此使用多維數組。你可以很容易地創建一個隱藏其他類的特定實現的類。

事實上,這將使您的設計更加健壯。

可以存儲在數據庫中,bitarray,一維數組等數據

相關問題