开发者

How to have Column, Rows array (not vice versa)

Making game of life I need to a have a grid that is 30x20 (X * Y). The problem is (I had another question regarding to that) that the c# arrays are rows, columns. So when I use CursorPosition() to drawing I need to swap it because it wants column at first. Is there any way how I can reverse it so I can use like this?

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


I believe that this is purely conceptual (c# arrays are neither row/col or col/row that is up to the developer) and comes down to iterating your array in either a depth-first or breadth-first manner e.g.

//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++)
     {    
     }    
}


At first I was inclined to answer no as the parameters to Console.SetCursorPosition is Positional parameters. But when I remember that C# have Named parameters too so something like this works.

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

This is the closest you can get, if you want to know why, search for the terms above


What you need is a data structure to store date in relation with an x,y coordinate.

You do not have to use a multi-dimensional array for this. You could very easily create a class that hides the specific implementation from the other classes.

In fact this will make your design more robust.

You can store the data in a database, bitarray, single dimension array, etc.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜