/// <summary> /// Execute method for Close - closes both players in game /// </summary> /// <param name="args"> name of the maze game to close </param> /// <param name="client"> client who's game needs to be closed </param> /// <returns> returns a string of the result of the command's execution </returns> public string Execute(string[] args, TcpClient client = null) { string Name = args[0]; //Gets the TCPClient that is playing against this client List <TcpClient> opponent = model.GetOpponents(client); model.EndGame(Name); string str; foreach (TcpClient O in opponent) { //Stream for opponent NetworkStream stream = O.GetStream(); StreamWriter writer = new StreamWriter(stream); str = "close"; Console.WriteLine("close"); writer.WriteLine(str); //writer.WriteLine("#"); writer.Flush(); //writer = new StreamWriter(stream); // writer.Flush(); } //stream for this client NetworkStream net = client.GetStream(); StreamWriter st = new StreamWriter(net); //str = "Closing Game: " + Name; // st.WriteLine(str); // st.WriteLine("#"); //st.Flush(); return("CLOSE"); }
/// <summary> /// Notifies the client's opponent of his move in the game /// </summary> /// <param name="args"> the clients move </param> /// <param name="client"> client that moved</param> /// <returns></returns> public string Execute(string[] args, TcpClient client = null) { List <TcpClient> opponents = model.GetOpponents(client); if (opponents.Count == 0) { return(""); } string jsonString = Json(model.GetGameOfClient(client).Maze.Name, args[0]); foreach (TcpClient Opponent in opponents) { NetworkStream stream = Opponent.GetStream(); StreamWriter writer = new StreamWriter(stream); Console.WriteLine(jsonString); //Turns the move into a JSON to send to opponent writer.WriteLine(jsonString); //writer.WriteLine("#"); writer.Flush(); } // StreamWriter s = new StreamWriter(client.GetStream()); // s.WriteLine("#"); // s.Flush(); return("DO NOT CLOSE"); }