Пример #1
0
        private void Processing(object sender, EventArgs e)
        {
            var senderWTask = (TaskManager.WTask)sender;

            switch (Enum.Parse(typeof(Commands), senderWTask.Description.Substring(0, 5)))
            {
            case Commands.login:
                _tm.Send(senderWTask.From, Users.ReturnAnswerToUser(Users.CheckLogin(senderWTask)));
                break;

            case Commands.crgme:
                _tm.Send(senderWTask.From, Games.CreateGame(new User(senderWTask.From), _tm));
                break;

            case Commands.icome:
                Games.ComeGamerinGame(new User(senderWTask.From), new User(senderWTask.Description.Remove(0, 5)), _tm);
                break;

            case Commands.meout:
                Games.OutFromGame(Guid.Parse(senderWTask.Description.Remove(0, 5)), _tm, senderWTask.From);
                break;

            case Commands.gstep:
                Games.MakeMotion(senderWTask.Description.Remove(0, 5), _tm);
                break;
            }
        }
Пример #2
0
 public static void ComeGamerinGame(User gamer, User host, TaskManager.TaskManager tm)
 {
     try
     {
         var gamefield = CreatedGameFields.First(i => i.Host.Name == host.Name);
         gamefield.ComeGamerInGame(gamer);
         StartedGameFields.Add(gamefield);
         CreatedGameFields.Remove(gamefield);
         Users.DeleteGame(gamefield.Name, tm);
         var json = JsonConvert.SerializeObject(gamefield);
         tm.Send(gamefield.Host.Name, "Gcome" + json);
         tm.Send(gamer.Name, "ycome" + json);
         if (gamefield.IsHostX)
         {
             tm.Send(host.Name, "ystep");
         }
         if (!gamefield.IsHostX)
         {
             tm.Send(gamer.Name, "ystep");
         }
     }
     catch
     {
         tm.Send(gamer.Name, "ncome");
     }
 }
Пример #3
0
 public static void OutFromGame(Guid gameId, TaskManager.TaskManager _tm, string maker)
 {
     try
     {
         var gamefield = CreatedGameFields.FirstOrDefault(i => i.GameId == gameId);
         if (gamefield != null)
         {
             Users.DeleteGame(gamefield.Name, _tm);
             return;
         }
         gamefield = StartedGameFields.First(i => i.GameId == gameId);
         if (maker == gamefield.Gamer.Name)
         {
             GamerOutFromGame(gameId, _tm);
             StartedGameFields.Remove(gamefield);
             return;
         }
         _tm.Send(gamefield.Gamer.Name, "meout");
         StartedGameFields.Remove(gamefield);
     }
     catch
     {
         _tm.Send(maker, "fails");
     }
 }
Пример #4
0
 public static void CheckGameOnFinish(GameField game, TaskManager.TaskManager tm)
 {
     try
     {
         FinishGame(game);
         if (game.IsXwins)
         {
             tm.Send(game.Host.Name, "Xwinr");
             tm.Send(game.Gamer.Name, "Xwinr");
         }
         if (!game.IsOwins)
         {
             return;
         }
         tm.Send(game.Host.Name, "Owinr");
         tm.Send(game.Gamer.Name, "Owinr");
     }
     catch
     {
     }
 }
Пример #5
0
 private void LoginButton_Click(object sender, RoutedEventArgs e)
 {
     NicknameTextBox.Text = GetNickname();
     if (_tm == null)
     {
         _tm = new TaskManager.TaskManager(Settings.Default.SettingsPath, GetNickname())
         {
             Enabled = true
         };
         _tm.Accept += Processing;
     }
     _tm.Send("CURSserver", "login" + GetNickname());
 }
Пример #6
0
 public static void GamerOutFromGame(Guid gameId, TaskManager.TaskManager _tm)
 {
     try
     {
         var gamefield = StartedGameFields.First(i => i.GameId == gameId);
         StartedGameFields.Remove(gamefield);
         _tm.Send(gamefield.Host.Name, "meout");
     }
     catch (Exception e)
     {
         MessageBox.Show(e.Message);
     }
 }
Пример #7
0
 public static void HostCreateGame(string gameName, TaskManager.TaskManager _tm)
 {
     try
     {
         foreach (var user in UserRepository.Users)
         {
             _tm.Send(user.Name, "newgm" + gameName);
         }
     }
     catch (Exception e)
     {
         MessageBox.Show(e.Message);
     }
 }
Пример #8
0
 public static void MakeMotion(string json, TaskManager.TaskManager tm)
 {
     try
     {
         var motion = JsonConvert.DeserializeObject <Motion>(json);
         var game   = StartedGameFields.First(i => i.GameId == motion.GameId);
         if (game.IsHostX && game.Host.Name == motion.MotionMaker)
         {
             game.MakeMotion(motion.CellId, TypeofCell.X);
         }
         if (game.IsHostX == false && game.Gamer.Name == motion.MotionMaker)
         {
             game.MakeMotion(motion.CellId, TypeofCell.X);
         }
         else
         {
             game.MakeMotion(motion.CellId, TypeofCell.O);
         }
         if (game.CheckOnFinishing())
         {
             CheckGameOnFinish(game, tm);
             return;
         }
         if (game.Cells.FirstOrDefault(i => i.TypeofCell == TypeofCell.Null) == null)
         {
             tm.Send(game.Gamer.Name, "drow1");
             tm.Send(game.Host.Name, "drow1");
         }
         if (motion.MotionMaker == game.Host.Name)
         {
             tm.Send(game.Gamer.Name, "gstep" + json);
             tm.Send(game.Gamer.Name, "ystep");
         }
         if (motion.MotionMaker != game.Gamer.Name)
         {
             return;
         }
         tm.Send(game.Host.Name, "gstep" + json);
         tm.Send(game.Host.Name, "ystep");
     }
     catch
     {
         var motion = JsonConvert.DeserializeObject <Motion>(json);
         tm.Send(motion.MotionMaker, "fails");
     }
 }
Пример #9
0
 private void CreateGameButton_Click(object sender, RoutedEventArgs e)
 {
     _tm.Send("CURSserver", "crgme");
 }