-2
public int Neighbours(int xCoordinate, int yCoordinate)
{
xCoordinate -= 1;
yCoordinate -= 1;
int NeighbourCounter = 0;
int incrementer = 0;
int m1 = -1; //istart
int n1 = -1; //jstart
int m2 = 1; //iend
int n2 = 1; //jend
if (xCoordinate == 0)
{
m1 = 1;
}
if (yCoordinate == 0)
{
n1 = -1;
}
if (xCoordinate + 1 == yLen)
{
m2 = 0;
}
if (yCoordinate + 1 == xLen)
{
n2 = 0;
}
for (int xNeighbour = m1; xNeighbour <= m2; xNeighbour++)
{
if (xNeighbour == 0)
{
incrementer = 2;
}
else
{
incrementer = 1;
}
for (int yNeighbour = n1; yNeighbour<n2; yNeighbour += incrementer)
{
if (CurrentGen[yCoordinate + yNeighbour][xCoordinate + xNeighbour] == 1)
{
NeighbourCounter++;
}
}
}
return NeighbourCounter;
}
是否有可能讓此代碼更有效?此代碼適用於我的生命遊戲項目,當我嘗試爲下一代人生遊戲運行此代碼時,似乎出現錯誤。對於我的NextGeneration,我似乎獲得了ArrayOutOfBoundsException: -2
。此錯誤發生在第45行。有沒有辦法讓這段代碼更有效率?
http://codereview.stackexchange.com/ – 2014-11-21 15:28:43
首先解決它,然後考慮讓它更有效率。 – Maroun 2014-11-21 15:29:54
請顯示您用作輸入的數據,調用,結果和預期結果。也chage int NeighbourCounter = 0;以小寫int int neighbourCounter = 0; – MihaiC 2014-11-21 15:30:37