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); }
//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); } } } }