Ejemplo n.º 1
0
        public List <char[]> GenerateHopping(char[] location)
        {
            BoardCommon   b           = new BoardCommon();
            List <char[]> hoppingList = new List <char[]>();

            char[] copyOfBoard = new char[50];
            for (int ind = 0; ind < location.Length; ind++)
            {
                if (location[ind] == 'W')
                {
                    for (int j = 0; j < location.Length; j++)
                    {
                        if (location[j] == 'x')
                        {
                            copyOfBoard      = (char[])location.Clone();
                            copyOfBoard[ind] = 'x';
                            copyOfBoard[j]   = 'W';
                            if (b.CloseMill(j, copyOfBoard))
                            {
                                b.GenerateRemove(copyOfBoard, hoppingList);
                            }
                            else
                            {
                                hoppingList.Add(copyOfBoard);
                            }
                        }
                    }
                }
            }
            return(hoppingList);
        }
Ejemplo n.º 2
0
        public List <char[]> GenerateMove(char[] location)
        {
            BoardCommon   b            = new BoardCommon();
            List <char[]> piecesToMove = new List <char[]>();

            char[] copyOfBoard = new char[50];
            int[]  neighboursList;
            for (int ind = 0; ind < location.Length; ind++)
            {
                if (location[ind] == 'W')
                {
                    neighboursList = b.Neighbours(ind);
                    foreach (int neighbour in neighboursList)
                    {
                        if (location[neighbour] == 'x')
                        {
                            copyOfBoard            = (char[])location.Clone();
                            copyOfBoard[ind]       = 'x';
                            copyOfBoard[neighbour] = 'W';

                            if (b.CloseMill(neighbour, copyOfBoard))
                            {
                                b.GenerateRemove(copyOfBoard, piecesToMove);
                            }
                            else
                            {
                                piecesToMove.Add(copyOfBoard);
                            }
                        }
                    }
                }
            }
            return(piecesToMove);
        }
        public List <char[]> GenerateAdd(char[] board)
        {
            BoardCommon   b             = new BoardCommon();
            List <char[]> piecesListAdd = new List <char[]>();

            char[] copyOfBoard;

            for (int ind = 0; ind < board.Length; ind++)
            {
                if (board[ind] == 'x')
                {
                    copyOfBoard      = (char[])board.Clone();
                    copyOfBoard[ind] = 'W';

                    if (b.CloseMill(ind, copyOfBoard))
                    {
                        piecesListAdd = b.GenerateRemove(copyOfBoard, piecesListAdd);
                    }
                    else
                    {
                        piecesListAdd.Add(copyOfBoard);
                    }
                }
            }
            return(piecesListAdd);
        }