private void CheckResults(Answer answer) { if (answer == Answer.NotTrust) { SendMessageToAllPlayers($"не верю {playersTable.GetCurrentPlayer().Name}"); } else { SendMessageToAllPlayers($"верю {playersTable.GetCurrentPlayer().Name}"); } SendPlayersDicesToAllPlayers(); PlayerForServer loser = SearchLoser(answer); SendMessageToAllPlayers($"проиграл {loser.Name}"); if (playersTable.DeleteDice(loser)) //если у игрока остались кости { playersTable.currentPlayer = playersTable.players.FindIndex(x => x == loser); NewRound($"{loser.Name}"); } else //если у игрока не осталось костей { SendMessageToAllPlayers($"выбыл {loser.Name}"); playersTable.Delete(loser.Name); if (playersTable.players.Count > 1) { NewRound($"{playersTable.GetNextPlayer().Name}"); } else { SendMessageToAllPlayers($"выиграл {playersTable.players[0].Name}"); } } }
public bool DeleteDice(PlayerForServer player) { if (player.DeleteDice() == true) { return(true); } else { return(false); } }
public void StartGame() { SendCountOfPlayersToAllPlayers(); playersTable.SetNewDiceValues(); //задаём начальные значения костей SendPlayersDices(); SendMessageToAllPlayers("игра началась"); PlayerForServer player = playersTable.GetNextPlayer(); SendMessageToAllPlayers($"ход {player.Name}"); }
private void GameProcessing(string message, IPEndPoint ePoint) { string[] mass = message.Split(' '); if (mass[0].Equals("ставка")) { bool flag = false; //проверка выполнения условий ставки int newCountOfDices = Convert.ToInt32(mass[1]); int newValueOfDices = Convert.ToInt32(mass[2]); if (previousBetValueOfDices != 1 && newValueOfDices != 1) { if (newCountOfDices > previousBetCountOfDices || newValueOfDices > previousBetValueOfDices && newCountOfDices == previousBetCountOfDices) { flag = true; } } else if (previousBetValueOfDices == 1 && newValueOfDices == 1) { if (newCountOfDices > previousBetCountOfDices) { flag = true; } } else if (previousBetValueOfDices == 1 && newValueOfDices != 1) { if (newCountOfDices > previousBetCountOfDices * 2) { flag = true; } } else if (previousBetValueOfDices != 1 && newValueOfDices == 1) { int shouldBeCountOfDices = previousBetCountOfDices / 2; if (previousBetCountOfDices % 2 == 1) { shouldBeCountOfDices++; } if (newCountOfDices >= shouldBeCountOfDices) { flag = true; } } else { throw new Exception($"Пришла неверная ставка: {mass[1]} {mass[2]}"); //Console.WriteLine("Пришла неверная ставка"); } if (flag == true) //если условия ставки выполнены, сообщаем ставку и передаём ход { previousBetCountOfDices = Int32.Parse(mass[1]); previousBetValueOfDices = Int32.Parse(mass[2]); SendMessageToAllPlayers($"ставка {playersTable.GetCurrentPlayer().Name} {mass[1]} {mass[2]}"); PlayerForServer player = playersTable.GetNextPlayer(); SendMessageToAllPlayers($"ход {player.Name}"); } } else if (mass[0].Equals("не")) //не верю { CheckResults(Answer.NotTrust); } else if (mass[0].Equals("верю")) { CheckResults(Answer.Trust); } else { throw new Exception("неверный формат сообщения серверу"); } }