相鄰數字如何計算一個3x3矩陣,這可能看起來像這樣入住矩陣
1 1 1
1 0 0
0 0 0
和我期望的輸出是所有周邊的人(方括號內爲索引[X,Y] ,我只關心數字,索引是準確的) [0,0] - 2,[1,0] - 3,[2,0] - 1,[0,1] -2等...我不計算中間數字。
我有一個大矩陣,任務是循環遍歷每個數字,想象這個矩陣並計算中間數字周圍有多少個矩陣。 這是我的代碼,但我不能讓它工作。
這裏是我的方法:
public int CheckArea(int cordX, int cordY)
{
int count = 0;
for (int i = cordX - 1; i <= cordX + 1; i++)
{
for (int j = cordY - 1; j <= cordY + 1; j++)
{
if (j != cordY && i != cordX && tileField[i, j])
{
count++;
}
}
}
return count;
}
它不應該是一個索引的問題因爲我設置的矩陣是這樣的:
tileField = new Boolean[width, height];
for (int x = 0; x < width; x++)
{
for (int y = 0; y < height; y++)
{
tileField[x, y] = false;
}
}
,但我不打印的第一和最後的行和列等等我的打印方法是:
public void Print()
{
for (int x = 1; x < this.width-1 ; x++)
{
for (int y = 1; y < this.height -1; y++)
{
if (!tileField[x, y])
{
Console.Write("0 ");
}
else
{
Console.Write("1 ");
}
}
Console.WriteLine("");
}
}
只需找到許多掃雷實施中的一個...... –
你在哪裏調用方法CheckArea? – jdweng
你需要比「我無法工作」更具體。什麼不行?看起來會的。如果你正在檢查你的邊緣,那麼你將在你的數組中搜索第一行和最後一行或第一列和最後一列中的項目。這些項目是什麼? – Marc