private void ProcessingResponse(string message) { try { string[] mass = message.Split(' '); if (mass[0].Equals($"ход")) { Player player = players.Find(x => x.Name.Equals(mass[1])); if (player == thisPlayer) { if (isNewRound) { form.Invoke(new MethodInvoker(form.ShowBetPanel)); } else { form.Invoke(new MethodInvoker(form.ShowBetAndTrustPanel)); } } isNewRound = false; form.Invoke(new UpdateForm <Player>(form.ShowWhoseTurn), player); } else if (mass[0].Equals("ставка")) { Player player; if (mass[1].Equals(thisPlayer.Name)) { player = thisPlayer; } else { player = players.Find(x => x.Name.Equals(mass[1])); } Bet bet = new Bet() { betType = BetType.bet, CountOfDices = Int32.Parse(mass[2]), DiceValue = Int32.Parse(mass[3]) }; form.Invoke(new SendDataToForm <object>(form.ShowBetNotification), new List <object>() { bet, player }); } else if (mass[0].Equals($"выбыл")) { Player player = players.Find(x => x.Name.Equals(mass[1])); Label label = players.Find(x => x.Name.Equals(mass[1])).NameLabel; if (mass[1].Equals(thisPlayer.Name)) { Alive = false; } else { opponents.Remove(player); } form.Invoke(new UpdateForm <Label>(form.SetLabelColorToRed), label); } else if (mass[0].Equals("верю")) { Player player; if (mass[1].Equals(thisPlayer.Name)) { player = thisPlayer; } else { player = players.Find(x => x.Name.Equals(mass[1])); } Bet bet = new Bet() { betType = BetType.trust }; form.Invoke(new SendDataToForm <object>(form.ShowBetNotification), new List <object>() { bet, player }); } else if (mass[0].Equals("не"))//не верю { Player player; if (mass[2].Equals(thisPlayer.Name)) { player = thisPlayer; } else { player = players.Find(x => x.Name.Equals(mass[2])); } Bet bet = new Bet() { betType = BetType.notTrust }; form.Invoke(new SendDataToForm <object>(form.ShowBetNotification), new List <object>() { bet, player }); } else if (mass[0].Equals("кости")) { for (int i = 1; i < mass.Length; i++) { if (thisPlayer.Name.Equals(mass[i])) { i += thisPlayer.dices.Count; } else { Player p = opponents.Find(x => x.Name.Equals(mass[i])); for (int j = 0; j < p.dices.Count; j++) { i++; p.dices[j].Num = Int32.Parse(mass[i]); } } } string log = "кости игроков:"; //log += dices.Where(x => x!=null); foreach (var p in opponents) { log += " " + p; foreach (var d in p.dices) { log += " " + d.Num; } } LogMessage(log); form.Invoke(new SendDataToForm <Player>(form.ShowPlayersDices), opponents); Thread.Sleep(4000); } else if (mass[0].Equals("твои")) { try { for (int i = 2; i < mass.Length; i++) { thisPlayer.dices[i - 2].Num = Int32.Parse(mass[i]); } form.Invoke(new UpdateForm <Player>(form.ChangeDicesOnTable), thisPlayer); } catch (Exception e) { MessageBox.Show(e.Message); } string log = "твои кости:"; //log += dices.Where(x => x!=null); foreach (var d in thisPlayer.dices) { log += d; } LogMessage(log); //form.Invoke(new SendDataToForm<Dice>(form.ChangeDicesOnTable), thisPlayer.dices); } else if (mass[0].Equals("проиграл")) { Player player = players.Find(x => x.Name.Equals(mass[1])); player.dices.RemoveAt(player.dices.Count - 1); form.Invoke(new UpdateForm <Player>(form.RemovePlayersDice), player); } else if (mass[0].Equals("количество")) { int n = Int32.Parse(mass[2]); string[] arr = new string[n]; Array.Copy(mass, 3, arr, 0, n); SetPlayersOnTable(n, arr); form.Invoke(new SendDataToForm <Player>(form.SetPlayersNames), players); } else if (mass[0].Equals("игра") || mass[0].Equals("новый")) { isNewRound = true; form.Invoke(new MethodInvoker(form.HidePlayersDices)); } else if (mass[0].Equals("выиграл")) { form.Invoke(new UpdateForm <string>(form.ShowWinner), $"Поздравляем {mass[1]}!"); if (mass[1].Equals(thisPlayer.Name)) { Alive = false; } } } catch (Exception ex) { //MessageBox.Show(message); } }