gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under the git version control systemdiff --git a/PretrazivanjeSaVracanjem/Lavirint/SuperKomplikovanoResenje/Mapa.java b/PretrazivanjeSaVracanjem/Lavirint/SuperKomplikovanoResenje/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 GRESKA = Integer.MIN_VALUE;\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 GRESKA = Integer.MIN_VALUE;\r
+\r
+ // Dimenzije mape\r
+ private int visina, sirina;\r
+\r
+ // Polja mape\r
+ private int[][] mat;\r
\r
- // Dimenzije mape\r
- private int visina, sirina;\r
- \r
- // Polja mape\r
- private int[][] mat;\r
+ // Prilikom pretrazivanja ovde mozemo pamtiti koja polja smo posetili a koja nismo\r
+ private boolean[][] pos;\r
\r
- // Prilikom pretrazivanja ovde mozemo pamtiti koja polja smo posetili a koja nismo\r
- private boolean[][] pos;\r
+ public int getSirina() {\r
+ return sirina;\r
+ }\r
\r
- public int getSirina() {\r
- return sirina;\r
- }\r
+ public int getVisina() {\r
+ return visina;\r
+ }\r
\r
- public int getVisina() {\r
- return visina;\r
- }\r
+ public void setPos(int x, int y, boolean b) {\r
+ if (0 <= x && x < sirina && 0 <= y && y < visina) {\r
+ pos[x][y] = b;\r
+ }\r
+ }\r
\r
- public void setPos(int x, int y, boolean b) {\r
- if (0 <= x && x < sirina && 0 <= y && y < visina) {\r
- pos[x][y] = b;\r
- }\r
- }\r
+ public boolean getPos(int x, int y) {\r
+ if (0 <= x && x < sirina && 0 <= y && y < visina) {\r
+ return pos[x][y];\r
+ } else {\r
+ return true;\r
+ }\r
+ }\r
\r
- public boolean getPos(int x, int y) {\r
- if (0 <= x && x < sirina && 0 <= y && y < visina) {\r
- return pos[x][y];\r
- } else {\r
- return true;\r
- }\r
- }\r
+ public int getMat(int x, int y) {\r
+ if (0 <= x && x < sirina && 0 <= y && y < visina) {\r
+ return mat[x][y];\r
+ } else {\r
+ return GRESKA;\r
+ }\r
+ }\r
\r
- public int getMat(int x, int y) {\r
- if (0 <= x && x < sirina && 0 <= y && y < visina) {\r
- return mat[x][y];\r
- } else {\r
- return GRESKA;\r
- }\r
- }\r
+ public Mapa(int sirina, int visina) {\r
+ this.sirina = sirina;\r
+ this.visina = visina;\r
+ mat = new int[sirina][visina];\r
+ pos = new boolean[sirina][visina];\r
+ }\r
\r
- public Mapa(int sirina, int visina) {\r
- this.sirina = sirina;\r
- this.visina = visina;\r
- mat = new int[sirina][visina];\r
- pos = new boolean[sirina][visina];\r
- }\r
+ public Mapa(String imeFajla) {\r
+ if (!Svetovid.testIn(imeFajla)) {\r
+ throw new RuntimeException("Fajl za kreiranje mape (" + imeFajla + ") nije prisupacan");\r
+ }\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 Mapa(String imeFajla) {\r
- if (!Svetovid.testIn(imeFajla)) {\r
- throw new RuntimeException("Fajl za kreiranje mape (" + imeFajla + ") nije prisupacan");\r
- }\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
+ public void stampaj() {\r
+ if (visina != 0 && sirina != 0) {\r
+ System.out.println();\r
+ System.out.println("Mapa sirine " + sirina + " i visine " + visina);\r
+ for (int j = 0; j < visina; j++) {\r
+ for (int i = 0; i < sirina; i++) {\r
+ System.out.printf("%5d", mat[i][j]);\r
+ }\r
+ System.out.println();\r
+ }\r
+ }\r
+ }\r
\r
- public void stampaj() {\r
- if (visina != 0 && sirina != 0) {\r
- System.out.println(visina + " " + sirina);\r
- for (int j = 0; j < visina; j++) {\r
- for (int i = 0; i < sirina; i++) {\r
- System.out.print(mat[i][j] + "\t");\r
- }\r
- System.out.println();\r
- }\r
- }\r
- }\r
- \r
- public String toString() {\r
- return "Mapa velicine " + sirina + " x " + visina;\r
- }\r
+ public String toString() {\r
+ return "Mapa velicine " + sirina + " x " + visina;\r
+ }\r
}\r