制作生命游戏我需要一个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.
答案 0 :(得分:3)
我认为这纯粹是概念性的(c#数组既不是行/ col,也不是开发人员的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++)
{
}
}
答案 1 :(得分:0)
起初我倾向于回答否,因为Console.SetCursorPosition
的参数是位置参数。但是当我记得C#也有命名参数时,这样的事情就可以了。
int a = 10;
int b = 20;
Console.SetCursorPosition(top: a, left: b);
这是您可以获得的最接近的,如果您想知道原因,请搜索上述条款
答案 2 :(得分:0)
您需要的是一个数据结构,用于存储与x,y坐标相关的日期。
您不必为此使用多维数组。您可以非常轻松地创建一个隐藏其他类中特定实现的类。
事实上,这将使您的设计更加健壮。
您可以将数据存储在数据库,比特阵列,单维数组等中。