gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Pojednostavljivanje resenja za NajboljiPut
[spa2-materijali.git] / PretrazivanjeSaVracanjem / Lavirint / NajboljiPut / Put.java
diff --git a/PretrazivanjeSaVracanjem/Lavirint/NajboljiPut/Put.java b/PretrazivanjeSaVracanjem/Lavirint/NajboljiPut/Put.java
new file mode 100644 (file)
index 0000000..41c7de2
--- /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
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner