gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Lavirint, objedinjeno resenje, doterana klasa Resenje
authorIvan Pribela <ivanpribela@gmail.com>
Mon, 27 Nov 2017 13:55:17 +0000 (14:55 +0100)
committerIvan Pribela <ivanpribela@gmail.com>
Mon, 27 Nov 2017 13:55:17 +0000 (14:55 +0100)
PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Lavirint.java
PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Resenje.java

index 312fa9c..c4c1980 100644 (file)
@@ -123,7 +123,7 @@ public class Lavirint {
                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
index ffb2622..9b92c19 100644 (file)
@@ -1,48 +1,42 @@
-/**\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
@@ -52,19 +46,9 @@ public class Resenje {
                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
@@ -72,27 +56,18 @@ public class Resenje {
                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
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner