gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under the git version control systemdiff --git a/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Mapa.java b/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Mapa.java
+\r
+/**\r
+ * Klasa Mapa koristi se za reprezentaciju lavirint i njegovih polja.\r
+ */\r
public class Mapa {\r
+\r
+ // Vrednosti polja i njihova znacenja\r
public final static int IZLAZ = -5;\r
public final static int ZID = -1;\r
- public final static int ERROR = Integer.MIN_VALUE;\r
+ public final static int GRESKA = Integer.MIN_VALUE;\r
\r
+ // Dimenzije mape\r
private int visina, sirina;\r
+ \r
+ // Polja mape\r
private int[][] mat;\r
+\r
+ // Prilikom pretrazivanja ovde mozemo pamtiti koja polja smo posetili a koja nismo\r
private boolean[][] pos;\r
\r
public int getSirina() {\r
if (0 <= x && x < sirina && 0 <= y && y < visina) {\r
return mat[x][y];\r
} else {\r
- return ERROR;\r
+ return GRESKA;\r
}\r
}\r
\r
pos = new boolean[sirina][visina];\r
}\r
\r
- public static Mapa ucitajIzFajla(String imeFajla) {\r
+ public Mapa(String imeFajla) {\r
if (!Svetovid.testIn(imeFajla)) {\r
- return null;\r
+ throw new RuntimeException("Fajl za kreiranje mape (" + imeFajla + ") nije prisupacan");\r
}\r
-\r
- int sirina = Svetovid.in(imeFajla).readInt();\r
- int visina = Svetovid.in(imeFajla).readInt();\r
- if (sirina >= 0 && visina >= 0) {\r
- Mapa res = new Mapa(sirina, visina);\r
- for (int j = 0; j < visina; j++)\r
- for (int i = 0; i < sirina; i++)\r
- res.mat[i][j] = Svetovid.in(imeFajla).readInt();\r
- Svetovid.closeIn(imeFajla);\r
- return res;\r
- } else {\r
- Svetovid.closeIn(imeFajla);\r
- return null;\r
+ sirina = Svetovid.in(imeFajla).readInt();\r
+ visina = Svetovid.in(imeFajla).readInt();\r
+ mat = new int[sirina][visina];\r
+ pos = new boolean[sirina][visina];\r
+ for (int j = 0; j < visina; j++) {\r
+ for (int i = 0; i < sirina; i++) {\r
+ mat[i][j] = Svetovid.in(imeFajla).readInt();\r
+ }\r
}\r
+ Svetovid.closeIn(imeFajla);\r
+ Prikaz.boja(ZID, Prikaz.CRNA, null);\r
+ Prikaz.boja(IZLAZ, Prikaz.CRVENA, Prikaz.BELA);\r
+ Prikaz.boja(1, 20, Prikaz.SVETLO_ZELENA, Prikaz.ZELENA, Prikaz.CRNA);\r
+ Prikaz.boja(99, Prikaz.ZUTA, Prikaz.CRNA);\r
+ Prikaz.mapa("Lavirint", getSirina(), getVisina(), this::getMat);\r
}\r
\r
public void stampaj() {\r
}\r
}\r
}\r
+ \r
+ public String toString() {\r
+ return "Mapa velicine " + sirina + " x " + visina;\r
+ }\r
}\r