public void SendMessage(TcpClient client, CheckersMessage message) { Connection tempConnection = new Connection(client); tempConnection.SendMessage(message); tempConnection.Shutdown(); }
private void HandleServerMessage(CheckersMessage message) { if (message.ProtocolVersion != 1) { // don't know how to handle other versions! return; } switch (message.MessageType) { case MessageType.Join: // set player identity Player = message.Side; break; case MessageType.Move: // server says a move was done, so represent that in the game ApplyMove(new Move(message)); break; case MessageType.PlayerConnected: if (message.Side != Player) { Debugging.Print("opponent connected."); OpponentConnected = true; } break; default: break; } }
public MessageDispatcher() { DummyMessage = new CheckersMessage() { ProtocolVersion = 0 }; RedPlayerConnection = null; WhitePlayerConnection = null; }
private void HandleResignMessage(CheckersMessage message, Side sender) { // inform players of resignation and end game. Dispatcher.SendMessage(Side.Red, new CheckersMessage() { ProtocolVersion = 1, MessageType = MessageType.GameOutcome, GameOutcome = (sender == Side.Red ? GameOutcome.RedResign : GameOutcome.WhiteResign) }); }
public bool SendMessage(Side side, CheckersMessage message) { if (side == Side.Red && PlayerConnected(Side.Red)) { RedPlayerConnection.SendMessage(message); return(true); } else if (side == Side.White && PlayerConnected(Side.White)) { WhitePlayerConnection.SendMessage(message); return(true); } return(false); }
private void HandleMessage(CheckersMessage message, Side sender) { switch (message.MessageType) { case MessageType.Move: HandleMoveMessage(message, sender); break; case MessageType.Resign: HandleResignMessage(message, sender); break; default: break; } }
private void HandleMoveMessage(CheckersMessage message, Side sender) { if (sender == Match.currentTurn) { CheckersMatch.Move theMove = new CheckersMatch.Move(message); if (Match.IsValidPartialMove(theMove) && // valid move? Match.Board[theMove.StartLocation].Player == sender) // checker belongs to player? { Console.WriteLine("Got a VALID move message from the player whose turn it is!"); Match.ApplyMove(theMove); // send messages to players notifying them a move was made. Dispatcher.SendMessage(Side.Red, theMove.ToMessage()); Dispatcher.SendMessage(Side.White, theMove.ToMessage()); } } else { // not sender's turn; do nothing. else block to explicitly recognize this } }
public void SendMessage(CheckersMessage message) { ToSend.Enqueue(message); }
public Move(CheckersMessage moveMessage) { StartLocation = new BoardLocation(moveMessage.StartRow, moveMessage.StartCol); EndLocation = new BoardLocation(moveMessage.EndRow, moveMessage.EndCol); }
public void SendMessage(CheckersMessage message) { Debugging.Print("Sending message " + message.ToString()); ToSend.Enqueue(message); }