缺少数组值

时间:2018-02-25 15:42:56

标签: c# arrays

遇到一些我无法解释的代码问题。 我有两个数组,代表地图(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;行是不是在执行。任何人都知道为什么?

(另外,如果有人为问题提出了更好的名称,那就太棒了)

1 个答案:

答案 0 :(得分:0)

好的,我想通了......

在我将数据转换为图形表示的功能中,我使用width而不是width + borderSize * 2

(看来这只是我的一个问题,我应该删除这篇帖子吗?给所有可能会看到这个的主持人)