示例#1
0
        public void NotifyView()
        {
            /* Console.WriteLine("----------------------------------------------------");
             * Console.WriteLine("Moves left" + string.Join(",", model.GetMovesLeft()));
             * Console.WriteLine("Number of final reachable states: " + MovesCalculator.GetReachableStatesThisTurn(model.GetGameBoardState(), model.playerToMove(), model.GetMovesLeft()).Count());
             * Console.WriteLine("----------------------------------------------------");
             * //Console.ReadLine();*/

            var changes = model.GetChanges();

            if (changes.Where(c => c is Move).Count() > 0)
            {
                Console.WriteLine("----------------------------------------------------");
                Console.WriteLine("This is coming from ConsoleView: " + identifier);
                Console.WriteLine(model.GetGameBoardState().Stringify());
                Console.WriteLine("----------------------------------------------------");
            }
        }
示例#2
0
        //Generates XML for the changes that happened during the previous turn,
        //and transmits it to the client, which will pass it to the server
        public void MakeMove()
        {
            var turn = model.GetPreviousTurn();

            if (turn == null)
            {
                client.SendDataToPlayer(string.Empty);
                return;
            }
            var state = model.GetGameBoardState();
            var data  = UpdateCreatorParser.CreateXmlForGameBoardState(state, "");

            var moves = turn.moves;

            data += UpdateCreatorParser.GenerateXmlForListOfMoves(moves);

            data += UpdateCreatorParser.GenerateXmlForDice(turn.dice);

            data = "<update>" + data + "</update>";
            client.SendDataToServer(data);
        }
示例#3
0
 public GameBoardState GetGameBoardState()
 {
     return(bg.GetGameBoardState());
 }