Пример #1
0
        public void MakeMove()
        {
            var moveableCheckers = model.GetMoveableCheckers(color);
            if(moveableCheckers.Count() == 0)
            {
                model.EndTurn(color);
                return;
            }

            int checkerToMove = (model.playerToMove() == CheckerColor.Black) ? moveableCheckers.First() : moveableCheckers.Last();
            var reachablePositions = model.GetLegalMovesFor(color, checkerToMove);
            int positionToMoveTo = reachablePositions.Last();
            model.Move(color, checkerToMove, positionToMoveTo);
        }
Пример #2
0
        //Receives XML for the changes that happened on the other side of the connection,
        //parses it into moves, and performs those move on the BackgammonGame instance it is
        //connected to.
        internal void ReceiveData(string data)
        {
            List <int> newMovesLeft = UpdateCreatorParser.ParseDiceFromXml(data);

            model.UpdateMovesLeft(newMovesLeft);

            List <Move> moves = UpdateCreatorParser.ParseListOfMoves(data);

            if (moves.None())
            {
                model.EndTurn(color);
            }
            else
            {
                foreach (var move in moves)
                {
                    if (move.color == this.color)
                    {
                        model.Move(move.color, move.from, move.to);
                    }
                }
            }
        }