Exemple #1
0
        /// <summary>
        /// Gets a list of the games the player can join
        /// </summary>
        /// <returns>list of games</returns>
        public ObservableCollection <string> GetListOfGames()
        {
            string request = "list";

            TcpMessenger.Write(request);
            string response = TcpMessenger.Read();

            response = response.Replace("\n", "");
            response = response.Replace("[", "");
            response = response.Replace("]", "");
            response = response.Replace("\"", "");
            string[] games = response.Split(',');
            games = games.Take(games.Count() - 1).ToArray();
            List <string> list = games.ToList <string>();

            gameList = new ObservableCollection <string>(list);
            return(gameList);
        }
Exemple #2
0
        /// <summary>
        /// Starts or joins the game, and begins the
        /// task of receiving the opponents moves
        /// </summary>
        /// <param name="action"> start or join</param>
        public void StartGame(string action)
        {
            string s;

            if (action == "join")
            {
                s  = "join ";
                s += Name;
            }
            else
            {
                s  = "start ";
                s += Name + " " + Rows + " " + Cols;
            }

            TcpMessenger.Write(s);
            string maze = TcpMessenger.Read();

            MyMaze     = Maze.FromJSON(maze);
            InitialPos = MyMaze.InitialPos;
            GoalPos    = MyMaze.GoalPos;
            if (action == "join")
            {
                Rows = MyMaze.Rows;
                Cols = MyMaze.Cols;
            }

            new Task(() =>
            {
                while (true)
                {
                    string pos = TcpMessenger.Read();


                    if (pos.Contains("Left"))
                    {
                        OnOpponentMoved(Key.Left);
                    }
                    else if (pos.Contains("Right"))
                    {
                        OnOpponentMoved(Key.Right);
                    }
                    else if (pos.Contains("Up"))
                    {
                        OnOpponentMoved(Key.Up);
                    }
                    else if (pos.Contains("Down"))
                    {
                        OnOpponentMoved(Key.Down);
                    }
                    else if (pos.Contains("close"))
                    {
                        OnOpponentMoved(Key.Delete);
                    }
                    else if (pos.Contains("quit"))
                    {
                        OnOpponentMoved(Key.Back);
                    }
                }
            }).Start();
        }