Пример #1
0
        public bool isAllowMove(Board board, Position movePos)
        {
            if (currMoveScenarios == null)
            {
                if (Board.isEmpty(board.getPiece(movePos)))
                {
                    return(false);
                }

                List <MoveScenarios> allowScenarios = moveFinder.getAllowMoveScenarios(board, board.PlayerColor);

                foreach (MoveScenarios currScenario in allowScenarios)
                {
                    if (currScenario.getFromPosition().Equals(movePos))
                    {
                        return(true);
                    }
                }

                return(false);
            }

            MoveScenarios matchScenario;

            if (currMoveScenarios.isCapture())
            {
                matchScenario = currMoveScenarios.getMatchScenarios(movePos, currMoveIndex);
            }
            else
            {
                matchScenario = currMoveScenarios.getMatchScenarios(movePos);
            }

            return(matchScenario.Count() > 0);
        }
Пример #2
0
        public void deletePlayerMove(Position toMovePos)
        {
            if (currMoveScenarios == null)
            {
                return;
            }

            if (toMovePos.Equals(currMoveScenarios.getFromPosition()))
            {
                currMoveScenarios = null;
                currMoveIndex     = 0;
            }
            else
            {
                int i = 0;

                foreach (Position p in currMoveScenarios.getScenario(0))
                {
                    if (!p.Equals(toMovePos))
                    {
                        break;
                    }

                    i++;
                }

                currMoveIndex = currMoveIndex - i - 1;

                if (currMoveIndex == -1)
                {
                    currMoveScenarios = allMoveScenarios;
                    currMoveIndex     = 0;
                }
                else
                {
                    Position currPos = currMoveScenarios.getScenario(0)[currMoveIndex];
                    currMoveScenarios = allMoveScenarios.getMatchScenarios(currPos, currMoveIndex);
                }
            }
        }