mirror of
https://forge.univ-lyon1.fr/tplifap4/gyromite_ya.git
synced 2024-02-27 13:31:49 +01:00
75 lines
2.4 KiB
Java
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;
|
|
}
|
|
}
|