private static int[] Neighbours(NeighbourSystem neighbourType, int index) { int[] coord = new int[2]; index++; switch (neighbourType) { case NeighbourSystem.Moore: switch (index) { case 1: coord[0] = -1; coord[1] = -1; break; case 2: coord[0] = -0; coord[1] = -1; break; case 3: coord[0] = +1; coord[1] = -1; break; case 4: coord[0] = -1; coord[1] = -0; break; case 5: coord[0] = -0; coord[1] = -0; break; case 6: coord[0] = +1; coord[1] = -0; break; case 7: coord[0] = -1; coord[1] = +1; break; case 8: coord[0] = -0; coord[1] = +1; break; case 9: coord[0] = +1; coord[1] = +1; break; default: break; } break; case NeighbourSystem.VonNeumann: switch (index) { case 1: coord[0] = 0; coord[1] = -1; break; case 2: coord[0] = -1; coord[1] = 0; break; case 3: coord[0] = +1; coord[1] = 0; break; case 4: coord[0] = 0; coord[1] = +1; break; case 5: coord[0] = -0; coord[1] = -0; break; default: break; } break; } return coord; }
private static int[] Neighbours(NeighbourSystem neighbourType, int index) { int[] coord = new int[2]; index++; switch (neighbourType) { case NeighbourSystem.Moore: switch (index) { case 1: coord[0] = -1; coord[1] = -1; break; case 2: coord[0] = -0; coord[1] = -1; break; case 3: coord[0] = +1; coord[1] = -1; break; case 4: coord[0] = -1; coord[1] = -0; break; case 5: coord[0] = -0; coord[1] = -0; break; case 6: coord[0] = +1; coord[1] = -0; break; case 7: coord[0] = -1; coord[1] = +1; break; case 8: coord[0] = -0; coord[1] = +1; break; case 9: coord[0] = +1; coord[1] = +1; break; default: break; } break; case NeighbourSystem.VonNeumann: switch (index) { case 1: coord[0] = 0; coord[1] = -1; break; case 2: coord[0] = -1; coord[1] = 0; break; case 3: coord[0] = +1; coord[1] = 0; break; case 4: coord[0] = 0; coord[1] = +1; break; case 5: coord[0] = -0; coord[1] = -0; break; default: break; } break; } return(coord); }