def battle_royal(iterations,
                 posPlayers,
                 list_goal,
                 game,
                 strat,
                 affichage=True):
    nbLignes = game.spriteBuilder.rowsize
    nbColonnes = game.spriteBuilder.colsize
    goalStates = [o.get_rowcol() for o in game.layers['ramassable']]
    wallStates = [w.get_rowcol() for w in game.layers['obstacle']]
    players = [o for o in game.layers['joueur']]

    nbPlayers = len(posPlayers)

    liste_gain = np.zeros(nbPlayers)

    for j in range(iterations):

        # ==== Initialisation des positions d'arriver
        chemin = [None] * nbPlayers
        for k in range(nbPlayers):
            list_goal[k] = goalStates[strat[k].get_goal()]
            chemin[k] = a_start(posPlayers[k], list_goal[k], nbLignes,
                                nbColonnes, wallStates)

        while (not fini(chemin)):
            for i in range(len(chemin)):
                if len(chemin[i]) == 0:
                    continue
                next_row, next_col = chemin[i].pop(0)
                players[i].set_rowcol(next_row, next_col)
                game.mainiteration()
                col = next_col
                row = next_row
                posPlayers[i] = (row, col)
                if (row, col) == list_goal[i]:
                    game.mainiteration()
        d = gain(posPlayers, liste_gain, goalStates)
        Strat.repartition(d)

    if affichage:
        for k in range(len(liste_gain)):
            print("resultat joueur", k)
            print("type de stratégie: ", strat[k].get_nom())
            print("score :", liste_gain[k])
            print("score moyen :", liste_gain[k] / iterations)
    return liste_gain