public static void map_one()
{
const int width = 10;
const int height = 5;
int[,] map = new int[width, height] {"0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
"0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
"0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
"0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
"0", "0", "0", "0", "0", "0", "0", "0", "0", "0",};
map[playerx, playery] = 1;
for (height = 0; height < 20; height++)
{
for(width = 0; width < 20; width++)
{
Console.Write(map[width, height] + "");
}
Console.WriteLine();
}
}
我遇到了你在那里看到的数组的问题,它告诉我“预期数组初始化长度为'10'。然后我写出的代码实际绘制了整个事情,在循环中我得到高度和宽度的问题“作业的左侧必须是变量,属性或索引器”
如果您需要更多信息,请询问。
答案 0 :(得分:2)
初始化时不需要指定数组维度
像这样使用
int[,] map = new int[,] {...}
编辑:同样在你循环中你将高度和宽度的限制设置为20,这将导致运行时异常
改为:
int width = map.GetLength(0);
int height = map.GetLength(1);
编辑:
您的最终代码应如下所示
const int width = 10;
const int height = 5;
var map = new int[width, height];
map[playerx, playery] = 1;
for (int h= 0; h< map.GetLength(1); h++)
{
for(int w= 0; w< map.GetLength(0); w++)
{
Console.Write(map[w, h] + "");
}
Console.WriteLine();
}
答案 1 :(得分:0)
很少有问题要注意..
一:
&#34; 0&#34;,};
语法错误就在那里:)
二:
声明你的宽度和身高&#34; const&#34;。因此,您无法在声明后为其分配任何值。
三:
int [,] map = new int [width,height];
是您所需要的,因为默认情况下,该数组中的所有值都将自动初始化为0.
此外,您不能将类似"0"
的字符串分配给整数(int)。
答案 2 :(得分:0)
使用1D数组初始化2D数组 它应该像
int[,] map = int[2,2] { {0, 0}, {0, 0}};
其次,你在循环中使用的2个索引变量与你在开始时声明的2个const变量相同,index应该改变,但是const,well ..是常量且不能改变。
只需为索引使用另一个变量,如
for (int i = 0; i < width; ++i)
for (int j = 0; j < height; ++j)
...
哦,不要将字符串值传递给整数数组