遇到一些我无法解释的代码问题。 我有两个数组,代表地图(0 =无,1 =块),一个是另一个数组,但有边框。 (边界是这样的,所以我可以控制哪一方得到一个)
问题是,左边框和下边框是否在请求时出现,但不是顶部和右边(数组末尾的边框)
int[,] borderedArray = new int[width + borderSize * 2, height + borderSize * 2];
if (borderSize != 0)
{
for (int x = 0; x < borderedArray.GetLength(0); x++)
{
for (int y = 0; y < borderedArray.GetLength(1); y++)
{
if (x > borderSize && x < width + borderSize && y > borderSize && y < height + borderSize)
borderedArray[x, y] = array[x - borderSize, y - borderSize];
else if (x < borderSize && leftWall)
borderedArray[x, y] = 1;
else if (x >= width + borderSize && rightWall)
borderedArray[x, y] = 1;
else if (y < borderSize && bottomWall)
borderedArray[x, y] = 1;
else if (y >= height + borderSize && topWall)
borderedArray[x, y] = 1;
}
}
}
有人能看出为什么会发生这种情况吗?
编辑:bcs测试和一些建议,ifs正在检测正确的事情,问题是,borderArray[x,y] = 1;
行是不是在执行。任何人都知道为什么?
(另外,如果有人为问题提出了更好的名称,那就太棒了)
答案 0 :(得分:0)
好的,我想通了......
在我将数据转换为图形表示的功能中,我使用width
而不是width + borderSize * 2
(看来这只是我的一个问题,我应该删除这篇帖子吗?给所有可能会看到这个的主持人)