コード例 #1
0
 public void ExecuteStep(IChecker mover, Coord coord)
 {
     if (mover.CheckPossibilityToMove(coord, GameField))
     {
         LogStep(mover.CurrentCoord, coord, mover);
         MoveCheckerDirectly(mover, coord);
         CheckGettingKing(mover);
         SwitchTurn();
         NextTurn();
     }
 }
コード例 #2
0
        } //виртуальное исполнение команды на убийство

        private IChecker[][] ExecuteOperationToMove(IChecker[][] newBoardState, IChecker mover, Coord coord)
        {
            if (mover.CheckPossibilityToMove(coord, gameField))
            {
                newBoardState[mover.CurrentCoord.Row][mover.CurrentCoord.Column] = null;
                mover.CurrentCoord = coord;
                newBoardState[mover.CurrentCoord.Row][mover.CurrentCoord.Column] = mover;
                CheckGettingKing(mover);
            }

            return(newBoardState);
        }  //виртуальное исполнение команды на движение
コード例 #3
0
        public bool CheckCheckersMovement(Coord newCoord, IChecker checker)
        {
            bool     result          = false;
            ICommand commandToPlayer = null;

            if (checker.CheckPossibilityToMove(newCoord, this) || checker.CheckPossibilityToKill(newCoord, this))
            {
                result = true;
                SendCommandToPlayerEvent(checker, checker.CurrentCoord, newCoord);
            }
            return(result);
        }
コード例 #4
0
        private void CheckMovement(TurnNode currentNode, Lib.PlayersSide whoseTurn, IChecker checker, int level)
        {
            List <TurnNode> turnNodes = new List <TurnNode>();

            if (checker.CheckPossibilityToMove(new Coord(checker.CurrentCoord.Row + 1, checker.CurrentCoord.Column + 1), gameField))
            {
                turnNodes.Add(MovingRecurcion(currentNode, whoseTurn, checker, new Coord(checker.CurrentCoord.Row + 1, checker.CurrentCoord.Column + 1), level));
            }
            if (checker.CheckPossibilityToMove(new Coord(checker.CurrentCoord.Row - 1, checker.CurrentCoord.Column + 1), gameField))
            {
                turnNodes.Add(MovingRecurcion(currentNode, whoseTurn, checker, new Coord(checker.CurrentCoord.Row - 1, checker.CurrentCoord.Column + 1), level));
            }
            if (checker.CheckPossibilityToMove(new Coord(checker.CurrentCoord.Row + 1, checker.CurrentCoord.Column - 1), gameField))
            {
                turnNodes.Add(MovingRecurcion(currentNode, whoseTurn, checker, new Coord(checker.CurrentCoord.Row + 1, checker.CurrentCoord.Column - 1), level));
            }
            if (checker.CheckPossibilityToMove(new Coord(checker.CurrentCoord.Row - 1, checker.CurrentCoord.Column - 1), gameField))
            {
                turnNodes.Add(MovingRecurcion(currentNode, whoseTurn, checker, new Coord(checker.CurrentCoord.Row - 1, checker.CurrentCoord.Column - 1), level));
            }

            currentNode.AddChild(turnNodes);
        }