示例#1
0
        public override Pit[] MakeBoard(int n)
        {
            NormalPit[] p1 = new NormalPit[n];
            NormalPit[] p2 = new NormalPit[n];
            for (int i = 0; i < n; i++)
            {
                p1[i] = new NormalPit(4);
                p2[i] = new NormalPit(4);

                if (i > 0)
                {
                    p1[i - 1].next = p1[i];
                    p2[i - 1].next = p2[i];
                }
            }

            for (int i = 0; i < n; i++)
            {
                p1[i].opposite = p2[n - i - 1];
                p2[i].opposite = p1[n - i - 1];
            }

            p1[p1.Length - 1].next = p2[0];
            p2[p2.Length - 1].next = p1[0];

            Pit[] board = new Pit[2 * n];
            for (int i = 0; i < n; i++)
            {
                board[i]     = p1[i];
                board[i + n] = p2[i];
            }

            return(board);
        }
示例#2
0
        public override Pit[] MakeBoard(int n)
        {
            NormalPit[] p1 = new NormalPit[n];
            NormalPit[] p2 = new NormalPit[n];

            //construct pits
            for (int i = 0; i < n; i++)
            {
                p1[i] = new NormalPit(4);
                p2[i] = new NormalPit(4);

                //connect pits.
                if (i > 0)
                {
                    p1[i - 1].next = p1[i];
                    p2[i - 1].next = p2[i];
                }
            }

            //connect opposite pits
            for (int i = 0; i < n; i++)
            {
                p1[i].opposite = p2[n - i - 1];
                p2[i].opposite = p1[n - i - 1];
            }

            //make homepits
            HomePit hp1 = new HomePit(0);
            HomePit hp2 = new HomePit(0);

            //connect homepist, and ends
            p1[p1.Length - 1].next = hp1;
            hp1.next = p2[0];
            p2[p2.Length - 1].next = hp2;
            hp2.next = p1[0];

            //convert to one board array
            Pit[] board = new Pit[2 * n + 2];
            board[n]         = hp1;
            board[2 * n + 1] = hp2;
            for (int i = 0; i < n; i++)
            {
                board[i]         = p1[i];
                board[i + n + 1] = p2[i];
            }

            return(board);
        }