public List <Tribe> initializeTribes(int numberOfTribes, List <Player> players)
    {
        List <Tribe>  tribes          = new List <Tribe>();
        List <Player> strongPlayers   = new List <Player>();
        List <Player> mediumPlayers   = new List <Player>();
        List <Player> weakPlayers     = new List <Player>();
        int           numberOfPlayers = players.Count;

        foreach (Player p in players)
        {
            int currentStrength = p.challengeStrength;
            if (currentStrength >= 7)
            {
                strongPlayers.Add(p);
            }
            else if (currentStrength >= 4)
            {
                mediumPlayers.Add(p);
            }
            else
            {
                weakPlayers.Add(p);
            }
        }
        int[] tribeDivisionArray = new int[numberOfPlayers];
        for (int i = 0; i < numberOfPlayers; i++)
        {
            tribeDivisionArray[i] = i % numberOfTribes;
        }
        int j = 0;
        List <List <Player> > playersSplit = new List <List <Player> >();

        for (int l = 0; l < numberOfTribes; l++)
        {
            playersSplit.Add(new List <Player>());
        }
        foreach (Player sp in strongPlayers)
        {
            playersSplit[tribeDivisionArray[j]].Add(sp);
            j++;
        }
        foreach (Player mp in mediumPlayers)
        {
            playersSplit[tribeDivisionArray[j]].Add(mp);
            j++;
        }
        foreach (Player wp in weakPlayers)
        {
            playersSplit[tribeDivisionArray[j]].Add(wp);
            j++;
        }
        for (int k = 0; k < numberOfTribes; k++)
        {
            GameObject newTO = Instantiate(TribeObject, transform.localPosition, Quaternion.identity);
            newTO.transform.parent = tribeContainer.transform;
            Tribe tribe = newTO.GetComponent <Tribe>();
            tribe.constructTribe(generateTribeName());
            tribe.setTribeColor(generateTribeColor());
            foreach (Player p in playersSplit[k])
            {
                tribe.AddMember(p);
            }
            tribes.Add(tribe);
        }
        return(tribes);
    }