public EmulatorPlayer GetNextPlayer(BoardSituation currentSituation, TableInfo tInfo)
        {
            // Меняем стэк сходившего игрока
            if (currentSituation.Decision > 0)
            {
                players[GetIndexPlayerByName(currentSituation.PlayerName)].Stack -= currentSituation.Decision;
            }
            else if (currentSituation.Decision == -1 && currentSituation.PlayerName != "")
            {
                players[GetIndexPlayerByName(currentSituation.PlayerName)].Folded = true;
            }

            int sbPlayer = 0;

            if (players.Count > 2)
            {
                sbPlayer = GetNextIndexInGame(tInfo.Button);
            }
            else
            {
                sbPlayer = tInfo.Button;
            }
            if (currentSituation.Deep == 0)
            {
                return(players[sbPlayer]);
            }
            else if (currentSituation.Deep == 1)
            {
                return(players[GetNextIndexInGame(sbPlayer)]);
            }

            // Если игроков в игре и не сбросивших меньше 2х, круг закончен
            if (players.Count(p => p.Folded == false) < 2)
            {
                return(null);
            }

            int curIndex  = GetNextIndexInGame(currentSituation.PlayerName);
            int?prevIndex = null;

            if (currentSituation.PlayerName == "")
            {
                curIndex = GetNextIndexInGame(tInfo.Button);
            }
            else
            {
                prevIndex = GetIndexPlayerByName(currentSituation.PlayerName);
            }
            // Если текущий игрок выставился, берем следующего
            while (prevIndex != curIndex && (players[curIndex].Stack == 0 || players[curIndex].Folded))
            {
                if (prevIndex == null)
                {
                    prevIndex = curIndex;
                }
                curIndex = GetNextIndexInGame(curIndex);
            }
            if (curIndex == prevIndex)
            {
                return(null);
            }
            int curBet = currentSituation.GetPlayerCurrentBet(players[curIndex].Agent.GetName());

            // Если ставки заколированы и игрок уже ходил, круг закончен
            if (curBet == currentSituation.MaxBet && (currentSituation.GetActionsCount(players[curIndex].Agent.GetName()) > 0 ||
                                                      players.Count(p => p.Stack > 0 && p.Folded == false) <= 1))
            {
                return(null);
            }
            return(players[curIndex]);
        }