示例#1
0
        /// <summary>
        /// Execute.
        /// </summary>
        /// <param name="args">The arguments.</param>
        /// <param name="name">The name.</param>
        /// <param name="currentPlayer">The current player.</param>
        public void Execute(string[] args, string name, TcpClient currentPlayer = null)
        {
            GameInfo         currenrGameInfo = MazeGame.gamesInfo[name];
            List <TcpClient> clients         = MazeGame.gamesInfo[name].Players;
            JObject          json            = new JObject();

            json[""] = "game closed";
            bool      found       = false;
            int       index       = 0;
            TcpClient clientFound = null;

            // find client
            while (!found && index < clients.Count)
            {
                if (clients[index] != currentPlayer)
                {
                    clientFound = clients[index];
                    found       = true;
                }
                index++;
            }
            // remove from list
            MazeGame.gamesInfo.Remove(name);

            // send json to client
            if (clientFound == null)
            {
                // player ended game before the second joined
                game.WriteMessage(new StreamWriter(currentPlayer.GetStream()), "aborted", currenrGameInfo);
            }
            else
            {
                game.WriteMessage(new StreamWriter(clientFound.GetStream()), json.ToString(), currenrGameInfo);
            }
        }
        /// <summary>
        /// Execute.
        /// </summary>
        /// <param name="args">The arguments.</param>
        /// <param name="name">The name.</param>
        /// <param name="currentPlayer">The current player.</param>
        public void Execute(string[] args, string name, TcpClient currentPlayer = null)
        {
            List <TcpClient> clients = MazeGame.gamesInfo[name].Players;
            JObject          json    = new JObject();

            json["Name"]      = name;
            json["Direction"] = args[0];
            bool      found       = false;
            int       index       = 0;
            TcpClient clientFound = null;

            // ConnectionInfo connectionInfo = new ConnectionInfo();

            // find client
            while (!found && index < clients.Count)
            {
                if (clients[index] != currentPlayer)
                {
                    clientFound = clients[index];
                    found       = true;
                }
                index++;
            }
            // send json to client
            game.WriteMessage(new StreamWriter(clientFound.GetStream()), json.ToString());
        }
示例#3
0
        /// <summary>
        /// Execute.
        /// </summary>
        /// <param name="args">The arguments.</param>
        /// <param name="name">The name.</param>
        /// <param name="currentPlayer">The current player.</param>
        public void Execute(string[] args, string name, TcpClient currentPlayer = null)
        {
            List <string> list = new List <string>();

            foreach (GameInfo gameInfo in MazeGame.gamesInfo.Values)
            {
                if (gameInfo.Players.Count != 2)
                {
                    // add name to list
                    list.Add(gameInfo.Name);
                }
            }

            // create result:
            string result = JsonConvert.SerializeObject(list);;

            game.WriteMessage(new StreamWriter(currentPlayer.GetStream()), result);
        }