gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under the git version control systemdiff --git a/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Lavirint.java b/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Lavirint.java
+import java.util.Comparator;\r
+\r
/**\r
* Klasa Lavirint sadrzi 3 javne i tri privatne metode za trazenje puteva.\r
- * \r
+ *\r
* Klase KomparatorPoDuzini i KomparatorPoVrednosti predstavljaju komparatore\r
* koji se korste pri trazenju najkraceg i najvrednijeg puta.\r
*/\r
-\r
-import java.util.Comparator;\r
-\r
public class Lavirint {\r
\r
// Polje m sadrzi kompletnu mapu\r
private Mapa m;\r
+\r
// Polje optResenje sluzi za pamcenje optimalnog resenja\r
private Resenje optResenje;\r
\r
// Ucitava mapu iz datog fajla i stampa je na ekran\r
Lavirint(String imeFajla) {\r
- m = Mapa.ucitajIzFajla(imeFajla);\r
+ m = new Mapa(imeFajla);\r
m.stampaj();\r
}\r
\r
}\r
if (m.getMat(x, y) == Mapa.IZLAZ) {\r
return true;\r
- } else {\r
- m.setPos(x, y, true);\r
- if (postojiPut(x + 1, y)) {\r
- return true;\r
- }\r
- if (postojiPut(x - 1, y)) {\r
- return true;\r
- }\r
- if (postojiPut(x, y + 1)) {\r
- return true;\r
- }\r
- if (postojiPut(x, y - 1)) {\r
- return true;\r
- }\r
- m.setPos(x, y, false);\r
- return false;\r
}\r
+ m.setPos(x, y, true);\r
+ if (postojiPut(x + 1, y)) {\r
+ return true;\r
+ }\r
+ if (postojiPut(x - 1, y)) {\r
+ return true;\r
+ }\r
+ if (postojiPut(x, y + 1)) {\r
+ return true;\r
+ }\r
+ if (postojiPut(x, y - 1)) {\r
+ return true;\r
+ }\r
+ m.setPos(x, y, false);\r
+ return false;\r
}\r
\r
// Poziva metodu rput da pronadje i ispise put, ako postoji\r
if (m.getMat(x, y) == Mapa.IZLAZ) {\r
System.out.println(x + " " + y);\r
return true;\r
- } else {\r
- m.setPos(x, y, true);\r
- if (rput(x + 1, y) || rput(x, y + 1) || rput(x, y - 1)\r
- || rput(x - 1, y)) {\r
- System.out.println(x + " " + y);\r
- return true;\r
- }\r
- m.setPos(x, y, false);\r
- return false;\r
}\r
+ m.setPos(x, y, true);\r
+ if (rput(x + 1, y) || rput(x, y + 1) || rput(x, y - 1)\r
+ || rput(x - 1, y)) {\r
+ System.out.println(x + " " + y);\r
+ return true;\r
+ }\r
+ m.setPos(x, y, false);\r
+ return false;\r
}\r
\r
// Kreira optimalno resenje za put, pri cemu se za optimalnost resenja\r
if (m.getMat(x, y) == Mapa.IZLAZ) {\r
r.dodaj(x, y, 0);\r
if (optResenje == null || c.compare(r, optResenje) < 0) {\r
- optResenje = r.clone();\r
+ optResenje = new Resenje(r);\r
}\r
r.izbaciKraj();\r
- } else {\r
- m.setPos(x, y, true);\r
- r.dodaj(x, y, m.getMat(x, y));\r
- optPut(x + 1, y, r, c);\r
- optPut(x, y + 1, r, c);\r
- optPut(x, y - 1, r, c);\r
- optPut(x - 1, y, r, c);\r
- m.setPos(x, y, false);\r
- r.izbaciKraj();\r
+ return;\r
}\r
+\r
+ // pokusavamo da trazimo dalje put\r
+ m.setPos(x, y, true);\r
+ r.dodaj(x, y, m.getMat(x, y));\r
+ optPut(x + 1, y, r, c);\r
+ optPut(x, y + 1, r, c);\r
+ optPut(x, y - 1, r, c);\r
+ optPut(x - 1, y, r, c);\r
+ m.setPos(x, y, false);\r
+ r.izbaciKraj();\r
}\r
}\r
\r
public int compare(Resenje r1, Resenje r2) {\r
return r2.getVrednost() - r1.getVrednost();\r
}\r
-}
\ No newline at end of file
+}\r