package modele.calculs.IO; import modele.calculs.Controle4Directions; import modele.calculs.Gravite; import modele.calculs.Items; import modele.calculs.Jeu; import modele.donnees.*; import java.awt.*; import java.io.*; import java.util.HashMap; import java.util.Scanner; public class LecteurFichier { public static HashMap loadMap(String path, Jeu _jeu) { int x = 0, y = 0; HashMap map = new HashMap<>(); Items r_i = new Items(); Gravite r_g = new Gravite(); modele.calculs.IA r_ia = new modele.calculs.IA(); Controle4Directions r_c = Controle4Directions.getInstance(); try { File fileMap = new File(path); FileReader fr = new FileReader(fileMap); BufferedReader br = new BufferedReader(fr); int ch; while ((ch = br.read()) != -1) { switch((char) ch) { case 'm': _jeu.addEntite(new Mur(_jeu), x, y); break; case 'h': Heros h = new Heros(_jeu); r_c.addEntiteDynamique(h); r_g.addEntiteDynamique(h); _jeu.addEntite(h, x, y); break; case 'i': IA ia = new IA(_jeu); r_ia.addEntiteDynamique(ia); r_g.addEntiteDynamique(ia); _jeu.addEntite(ia, x, y); break; case 'c': _jeu.addEntite(new Corde(_jeu), x, y); break; case 'b': Bombe b = new Bombe(_jeu); r_i.addEntiteDynamique(b); _jeu.addEntite(b, x, y); break; case '\n': y++; x = -1; break; } x ++; } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } _jeu.getOrdonnanceur().add(r_g); _jeu.getOrdonnanceur().add(r_c); _jeu.getOrdonnanceur().add(r_ia); _jeu.getOrdonnanceur().add(r_i); return map; } }