private void playRound() {
        currentRound++;

        //Generate new m
        Random r = new Random();
        currentM = r.nextInt(participants.size() * (participants.size() - 1) - 1) + 1;

        //Shuffle participants
        Collections.shuffle(participants);

        List<List<Moves>> players_decisions = new ArrayList<>();

        //Each player makes his decision

        for(HuntableProfile hp : participants)
        {
            ArrayList<Double> reputations = getPlayersReputations(hp);

            players_decisions.add(hp.getPlayer().hunt_choices(currentRound, hp.getCurrentFood(), hp.getReputation() , currentM, reputations));
        }

        //Update players food and reputation
        int hunts_count = updatePlayerProfile(players_decisions);

        //Check extra food
        if(hunts_count >= currentM) for (HuntableProfile hp : participants) {
            hp.updateFood(2 * (participants.size() - 1));
        }

    }