gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under the git version control systemdiff --git a/PretrazivanjeSaVracanjem/Lavirint/NajboljiPut/Put.java b/PretrazivanjeSaVracanjem/Lavirint/NajboljiPut/Put.java
--- /dev/null
@@ -0,0 +1,113 @@
+\r
+/**\r
+ * Klasa Put koristi se za pamcenje pronadjenog puta.\r
+ * \r
+ * Polje Polja se koristi za pamcenje svih polja na putu.\r
+ * \r
+ */\r
+import java.util.ArrayList;\r
+\r
+public class Put {\r
+ private ArrayList<Polje> polja;\r
+\r
+ public Put() {\r
+ polja = new ArrayList<Polje>();\r
+ }\r
+\r
+ /**\r
+ * Pravi novo resenje sa istim sadrzajem kao original\r
+ */\r
+ public Put(Put original) {\r
+ // pozovemo "podrazumevani" konstruktor\r
+ this();\r
+ // iskopiramo sva polja iz originala\r
+ for (Polje p : original.polja) {\r
+ dodaj(p.getX(), p.getY(), p.getV());\r
+ }\r
+ }\r
+\r
+ // Dodaje pulje 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
+ public void izbaciKraj() {\r
+ if (getLength() > 0) {\r
+ polja.remove(getLength() - 1);\r
+ } else {\r
+ System.err.println("greska: resenje je vec prazno");\r
+ }\r
+ }\r
+\r
+ // Stampa resenje\r
+ public void stampaj() {\r
+ System.out.println(getLength());\r
+ for (int i = 0; i < getLength(); i++)\r
+ System.out.println(polja.get(i));\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
+ }\r
+\r
+ // Vraca duzinu resenja\r
+ public int getLength() {\r
+ return polja.size();\r
+ }\r
+\r
+ // Kreira nezavisnu kopiju ovog resenja\r
+ public Put kopija() {\r
+ Put rez = new Put();\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
+ int rez = 0;\r
+ for (Polje p : polja) {\r
+ rez = rez + p.getV();\r
+ }\r
+ return rez;\r
+ }\r
+\r
+ public class Polje {\r
+ private int x, y, v;\r
+\r
+ Polje(int x, int y, int v) {\r
+ this.x = x;\r
+ this.y = y;\r
+ this.v = v;\r
+ }\r
+\r
+ public int getX() {\r
+ return x;\r
+ }\r
+\r
+ public int getY() {\r
+ return y;\r
+ }\r
+\r
+ public int getV() {\r
+ return v;\r
+ }\r
+\r
+ public String toString() {\r
+ return x + " " + y + " " + v;\r
+ }\r
+ }\r
+}\r