Beispiel #1
0
        /*
         * Return true if move is end
         */
        public bool execPlayerMove(Board board, Position movePos)
        {
            if (currMoveScenarios == null)
            {
                allMoveScenarios  = moveFinder.getMoveScenarios(board, movePos);
                currMoveScenarios = allMoveScenarios;
                currMoveIndex     = 0;
            }
            else
            {
                currMoveScenarios = currMoveScenarios.getMatchScenarios(movePos, currMoveIndex);
                currMoveIndex++;

                if (currMoveScenarios.Count() == 1 && currMoveScenarios.getScenario(0).Count == currMoveIndex)
                {
                    execScenario(board, currMoveScenarios, 0);

                    currMoveScenarios = null;

                    return(true);
                }
            }

            return(false);
        }
Beispiel #2
0
        public List <MoveScenarios> getAllowMoveScenarios(Board board, int color)
        {
            List <MoveScenarios> allMoveScenarios    = new List <MoveScenarios>();
            List <MoveScenarios> allCaptureScenarios = new List <MoveScenarios>();

            List <Position> piecePositions = board.getPiecePositions(color);

            foreach (Position currPosition in piecePositions)
            {
                MoveScenarios captureScenarios = getAllCaptureScenarios(board, currPosition);

                if (captureScenarios != null)
                {
                    allCaptureScenarios.Add(captureScenarios);
                }
                else
                {
                    MoveScenarios moveScenarios = getAllMoveScenarios(board, currPosition);

                    if (moveScenarios.Count() > 0)
                    {
                        allMoveScenarios.Add(moveScenarios);
                    }
                }
            }

            if (allCaptureScenarios.Count > 0)
            {
                return(allCaptureScenarios);
            }

            return(allMoveScenarios);
        }
Beispiel #3
0
        public Position getCurrMovesInfo()
        {
            if (currMoveScenarios != null)
            {
                if (currMoveScenarios.isCapture())
                {
                    return(new Position(0, currMoveScenarios.Count()));
                }
                else
                {
                    return(new Position(currMoveScenarios.Count(), 0));
                }
            }

            return(null);
        }