public HashMap<Integer, ArrayList<Mission>> listeMissionsAttaquesNonImmediates() {
        HashMap<Integer, ArrayList<Mission>> missionsAttaquesNonImmediates = new HashMap<Integer, ArrayList<Mission>>();
        ArrayList<Mission> missions = new ArrayList<Mission>();;
        for (int i = 0; i < colonnes; i++) {
            for (int j = 0; j < lignes; j++) {
                if (monstre == Monstre.LOUPS && vampires[i][j] != 0) {
                    int nombreCoupsNecessaires = distanceMonstres(i, j, vampires[i][j], Monstre.LOUPS);
                    missions.add(new Mission(1000 * vampires[i][j] / nombreCoupsNecessaires, TypeMission.ATTAQUE, new Case(i, j)));
                }
                if (monstre == Monstre.VAMPIRES && loups[i][j] != 0) {
                    int nombreCoupsNecessaires = distanceMonstres(i, j, loups[i][j], Monstre.VAMPIRES);
                    missions.add(new Mission(1000 * loups[i][j] / nombreCoupsNecessaires, TypeMission.ATTAQUE, new Case(i, j)));
                }
                if (humains[i][j] != 0) {
                    int nombreCoupsNecessaires = distanceMonstres(i, j, humains[i][j], monstre);
                    missions.add(new Mission(1000 * humains[i][j] / nombreCoupsNecessaires, TypeMission.ATTAQUE, new Case(i, j)));
                }
            }
        }
        for (Mission mission : missions) {
            if (missionsAttaquesNonImmediates.get(mission.getScore()) == null) {
                ArrayList<Mission> nouveau = new ArrayList<Mission>();
                nouveau.add(mission);
                missionsAttaquesNonImmediates.put(mission.getScore(), nouveau);
            } else {
                missionsAttaquesNonImmediates.get(mission.getScore()).add(mission);
            }
        }
        return missionsAttaquesNonImmediates;
    }