Example #1
0
        private IChecker[][] CreateStateCopy(IChecker[][] state)
        {
            IChecker[][]   newState = new IChecker[9][];
            CheckerFactory factory  = CheckerFactory.GetInstance();

            for (int i = 1; i <= 8; i++)
            {
                newState[i] = new IChecker[9];
            }

            for (int i = 1; i <= 8; i++)
            {
                for (int j = 1; j <= 8; j++)
                {
                    if (state[i][j] != null)
                    {
                        if (state[i][j] is BlackChecker)
                        {
                            IChecker black = factory.CreateBlackPhantom(new Coord(i, j), gameField);
                            newState[i][j] = black;
                        }
                        else if (state[i][j] is WhiteChecker)
                        {
                            newState[i][j] = factory.CreateWhitePhantom(new Coord(i, j), gameField);
                        }
                        if (newState[i][j].IsKing)
                        {
                            state[i][j].BecomeKing();
                        }
                    }
                }
            }
            return(newState);
        }