public PlayersListener(OnPlayersConnected onPlayersConnectedCallback)
        {
            m_Listener = new TcpListener(IPAddress.Parse(NetworkDataConsts.Ip),
                                         NetworkDataConsts.Port);

            m_PendingPlayers = new Dictionary <int, List <ConnectedPlayerData> >();
            m_PendingPlayersAfterConnectionError = new List <ConnectedPlayerData>();
            m_NewConnectedUsers = new Dictionary <DateTime, Socket>();

            m_OnPlayersConnectedCallback = onPlayersConnectedCallback;

            m_IsActive = true;

            m_Listener.Start();
            Console.WriteLine("Started listening...");
        }
        //public void Init(Team team, IStrategy strategy, Guid id)
        //{
        //    var newPlayer = new GomokuPlayer(strategy, team, id);
        //    if (team == Team.Red)
        //        PlayerRed = newPlayer;
        //    else
        //    if (team == Team.Blue)
        //        PlayerBlue = newPlayer;
        //    if (PlayerRed != null && PlayerBlue != null)
        //        OnPlayersConnected?.Invoke();
        //}

        public void Init(Team team, Type strategy, Guid id)
        {
            var newPlayer = new GomokuPlayer(StrategyFactory.Create(strategy, Game, team), team, id);

            if (team == Team.Red)
            {
                PlayerRed = newPlayer;
            }
            else
            if (team == Team.Blue)
            {
                PlayerBlue = newPlayer;
            }

            if (PlayerRed != null && PlayerBlue != null)
            {
                OnPlayersConnected?.Invoke();
            }
        }