Ejemplo n.º 1
0
        /// <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");
        }
Ejemplo n.º 2
0
        /// <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");
        }