gyromite_ya/src/modele/calculs/IO/LecteurFichier.java
2020-12-09 11:54:13 +01:00

75 lines
2.4 KiB
Java

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<ObjetGyromide, Point> loadMap(String path, Jeu _jeu) {
int x = 0, y = 0;
HashMap<ObjetGyromide, Point> 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;
}
}