Exemplo n.º 1
0
        public bool addChildBoardStates(MoveFinder moveFinder)
        {
            List <MoveScenarios> allScenarios = moveFinder.getAllowMoveScenarios(BoardState, BoardState.CurrentColor);

            foreach (MoveScenarios currScenario in allScenarios)
            {
                for (int i = 0; i < currScenario.Count(); i++)
                {
                    Board newBoardState = new Board(BoardState);
                    MoveController.execScenario(newBoardState, currScenario, i);

                    ChildsContext.Push(
                        new MoveContext(
                            newBoardState,
                            currScenario.getFromPosition(),
                            currScenario.getScenario(i),
                            CurrDepth + 1,
                            this,
                            !IsMax
                            )
                        );
                }
            }

            IsVisited = true;

            if (allScenarios.Count > 0)
            {
                return(allScenarios[0].isCapture());
            }

            return(false);
        }
Exemplo n.º 2
0
 public void execMove(MoveScenarios bestScenario)
 {
     if (bestScenario != null)
     {
         MoveController.execScenario(board, bestScenario, 0);
     }
     else
     {
         areAllowMoves = false;
     }
 }