gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under the git version control system
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 7a0ebff)
raw | patch | inline | side by side (parent: 7a0ebff)
author | Ivan Pribela <ivanpribela@gmail.com> | |
Mon, 27 Nov 2017 13:55:17 +0000 (14:55 +0100) | ||
committer | Ivan Pribela <ivanpribela@gmail.com> | |
Mon, 27 Nov 2017 13:55:17 +0000 (14:55 +0100) |
PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Lavirint.java | patch | blob | history | |
PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Resenje.java | patch | blob | history |
diff --git a/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Lavirint.java b/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Lavirint.java
index 312fa9cbb76681893efe05193a129678172eaaef..c4c19809de2272f8305d26dcc19f817fbab5311e 100644 (file)
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.kopija();\r
+ optResenje = new Resenje(r);\r
}\r
r.izbaciKraj();\r
return;\r
diff --git a/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Resenje.java b/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Resenje.java
index ffb2622692d8a7ebe91b7eac5661e8accc9ebaeb..9b92c19834bbee7ed8090f9b86f2cbbbc40286d4 100644 (file)
-/**\r
- * Klasa Resenje koristi se za pamcenje pronadjenog puta.\r
- * \r
- * Polje Polja se koristi za pamcenje svih polja na putu.\r
- * \r
- * Polje nepromenljivaListaPolja je dodata da se omoguci\r
- * pristup poljima resenja "spolja" (za proveru kvaliteta puta na primer), \r
- * ali tako da ne moze da se utice na sam sadrzaj te liste.\r
- */\r
import java.util.ArrayList;\r
-import java.util.List;\r
import java.util.Collections;\r
+import java.util.List;\r
\r
+/**\r
+ * Klasa Resenje koristi se za pamcenje puta kroz mapu.\r
+ */\r
public class Resenje {\r
+\r
+ // Pamtimo sva polja na putu\r
private ArrayList<Polje> polja;\r
+\r
+ // Dodato da se omoguci pristup poljima resenja "od spolja" (za proveru kvaliteta puta na primer),\r
+ // ali tako da ne moze da se utice na sam sadrzaj te liste\r
private List<Polje> nepromenljivaListaPolja;\r
\r
+ // Kreira novo prazno resenje\r
public Resenje() {\r
polja = new ArrayList<Polje>();\r
nepromenljivaListaPolja = Collections.unmodifiableList(polja);\r
}\r
- \r
- /**\r
- Pravi novo resenje sa istim sadrzajem kao original\r
- */\r
+\r
+ // Kreira novo resenje sa istim sadrzajem kao original\r
public Resenje(Resenje original) {\r
- // pozovemo "podrazumevani" konstruktor\r
this();\r
- // iskopiramo sva polja iz originala\r
- for (Polje p : original.getPolja()) {\r
- dodaj(p.getX(), p.getY(), p.getV());\r
- }\r
+ polja.addAll(original.polja);\r
}\r
\r
- // Dodaje pulje u resenje\r
+ // Dodaje polje u resenje\r
public void dodaj(int x, int y, int v) {\r
polja.add(new Polje(x, y, v));\r
}\r
\r
- // Izbacuje polje iz resenja\r
+ // Izbacuje poslednje polje iz resenja\r
public void izbaciKraj() {\r
if (getLength() > 0) {\r
polja.remove(getLength() - 1);\r
} else {\r
- System.err.println("greska: resenje je vec prazno");\r
+ throw new IllegalStateException("Resenje je vec prazno");\r
}\r
}\r
\r
for (int i = 0; i < getLength(); i++)\r
System.out.println(polja.get(i));\r
}\r
- \r
+\r
public String toString() {\r
- StringBuilder sb = new StringBuilder();\r
- sb.append("Resenje: [ ");\r
- if (getLength()>0) {\r
- sb.append(polja.get(0));\r
- for (int i = 1; i < getLength(); i++) {\r
- sb.append(", " + polja.get(i));\r
- }\r
- }\r
- sb.append(" ]");\r
- \r
- return sb.toString();\r
+ return getVrednost() + "\u20ac " + getLength() + "m";\r
}\r
\r
// Vraca duzinu resenja\r
return polja.size();\r
}\r
\r
- // Vraca i-to polje na putu. Ne koristi se u ovoj verziji zadatka.\r
- // Moze se koristiti za proveru kvaliteta resenja\r
+ // Vraca i-to polje na putu\r
+ // Ne koristi se u ovoj verziji zadatka. Moze se koristiti za proveru kvaliteta resenja\r
public Polje getPolje(int i) {\r
return polja.get(i);\r
}\r
\r
- // Vraca sva polja na putu. Ne koristi se u ovoj verziji zadatka.\r
- // Moze se koristiti za proveru kvaliteta resenja\r
+ // Vraca sva polja na putu\r
+ // Ne koristi se u ovoj verziji zadatka. Moze se koristiti za proveru kvaliteta resenja\r
public List<Polje> getPolja() {\r
return nepromenljivaListaPolja;\r
}\r
\r
- // Kreira nezavisnu kopiju ovog resenja\r
- public Resenje kopija() {\r
- Resenje rez = new Resenje();\r
- for (Polje p : polja) {\r
- rez.dodaj(p.getX(), p.getY(), p.getV());\r
- }\r
- return rez;\r
- }\r
-\r
// Vraca vrednost puta\r
// Vrednost se definise kao zbir svih vrednosti polja na putu\r
public int getVrednost() {\r