Exemple #1
0
        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);
        }