gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Laviritn, Objedinjeno resenje, doterivanja
authorDoni Pracner <quinnuendo@gmail.com>
Tue, 5 Dec 2017 14:51:08 +0000 (15:51 +0100)
committerDoni Pracner <quinnuendo@gmail.com>
Tue, 5 Dec 2017 14:51:08 +0000 (15:51 +0100)
Klasa Resenje je preimenovana u Put, posto je tako logicnije.

U skladu sa tim su menjani i neki komentari i neka imena promenljivih
i slicno.

PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Lavirint.java
PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/LavirintProgram.java
PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Put.java [new file with mode: 0644]
PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Resenje.java [deleted file]

index 77069ae..5b84e5a 100644 (file)
@@ -12,7 +12,7 @@ public class Lavirint {
        private Mapa m;\r
 \r
        // Polje optResenje sluzi za pamcenje optimalnog resenja\r
-       private Resenje optResenje;\r
+       private Put optResenje;\r
 \r
        // Ucitava mapu iz datog fajla i stampa je na ekran\r
        Lavirint(String imeFajla) {\r
@@ -91,8 +91,8 @@ public class Lavirint {
        // Kreira optimalno resenje za put, pri cemu se za optimalnost resenja\r
        // koristi komparator po duzini resenja, tj. trazi se najkrace resenje\r
        // Samo resenje kreira se u metodi optPut\r
-       public Resenje najkraciPut(int x, int y) {\r
-               Resenje r = new Resenje();\r
+       public Put najkraciPut(int x, int y) {\r
+               Put r = new Put();\r
                optPut(x, y, r, new KomparatorPoDuzini());\r
                return optResenje;\r
        }\r
@@ -100,17 +100,17 @@ public class Lavirint {
        // Kreira optimalno resenje za put, pri cemu se za optimalnost resenja\r
        // koristi komparator po duzini resenja, tj. trazi se najvrednije resenje\r
        // Samo resenje kreira se u metodi optPut\r
-       public Resenje najvrednijiPut(int x, int y) {\r
-               Resenje r = new Resenje();\r
-               optPut(x, y, r, new KomparatorPoVredosti());\r
+       public Put najvrednijiPut(int x, int y) {\r
+               Put trenutni = new Put();\r
+               optPut(x, y, trenutni, new KomparatorPoVredosti());\r
                return optResenje;\r
        }\r
 \r
        // Proverava da li postoji put korsiteci pretrazivanje sa vracanjem\r
        // Ukoliko se pronadje na prvi ili optimalniji put, taj put se pamti u\r
        // optResenje\r
-       // Optimalnost resenja se proverava komparatorom\r
-       private void optPut(int x, int y, Resenje r, Comparator<Resenje> c) {\r
+       // Optimalnost puta se proverava komparatorom\r
+       private void optPut(int x, int y, Put trenutni, Comparator<Put> c) {\r
                if (x < 0 || x >= m.getSirina() || y < 0 || y >= m.getVisina()) {\r
                        return;\r
                }\r
@@ -121,36 +121,36 @@ public class Lavirint {
                        return;\r
                }\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 = new Resenje(r);\r
+                       trenutni.dodaj(x, y, 0);\r
+                       if (optResenje == null || c.compare(trenutni, optResenje) < 0) {\r
+                               optResenje = new Put(trenutni);\r
                        }\r
-                       r.izbaciKraj();\r
+                       trenutni.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
+               trenutni.dodaj(x, y, m.getMat(x, y));\r
+               optPut(x + 1, y, trenutni, c);\r
+               optPut(x, y + 1, trenutni, c);\r
+               optPut(x, y - 1, trenutni, c);\r
+               optPut(x - 1, y, trenutni, c);\r
                m.setPos(x, y, false);\r
-               r.izbaciKraj();\r
+               trenutni.izbaciKraj();\r
        }\r
 }\r
 \r
-// Komparator za resenja po duzini resenja\r
-class KomparatorPoDuzini implements Comparator<Resenje> {\r
-       public int compare(Resenje r1, Resenje r2) {\r
+// Komparator za puteve  po duzini resenja\r
+class KomparatorPoDuzini implements Comparator<Put> {\r
+       public int compare(Put r1, Put r2) {\r
                return r1.getLength() - r2.getLength();\r
        }\r
 }\r
 \r
-// Komparator za resenja po vrednosti resenja\r
-class KomparatorPoVredosti implements Comparator<Resenje> {\r
-       public int compare(Resenje r1, Resenje r2) {\r
+// Komparator za puteve po vrednosti resenja\r
+class KomparatorPoVredosti implements Comparator<Put> {\r
+       public int compare(Put r1, Put r2) {\r
                return r2.getVrednost() - r1.getVrednost();\r
        }\r
 }\r
index 6566938..01adf52 100644 (file)
@@ -25,7 +25,7 @@ public class LavirintProgram {
                }\r
 \r
                Lavirint l = new Lavirint(fajl);\r
-               Resenje r;\r
+               Put r;\r
 \r
                if (l != null) {\r
                        System.out.println("1 - da li postoji put");\r
diff --git a/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Put.java b/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Put.java
new file mode 100644 (file)
index 0000000..e942883
--- /dev/null
@@ -0,0 +1,98 @@
+import java.util.ArrayList;\r
+import java.util.Collections;\r
+import java.util.List;\r
+\r
+import javafx.scene.paint.Color;\r
+\r
+/**\r
+ * Klasa Put koristi se za pamcenje puta kroz mapu.\r
+ */\r
+public class Put {\r
+\r
+       // Pamtimo sva polja na putu\r
+       private ArrayList<Polje> polja;\r
+\r
+       // Dodato da se omoguci pristup poljima puta "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
+       // Potrebno za graficki prikaz\r
+       private String naziv;\r
+\r
+       // Potrebno za graficki prikaz\r
+       private Put(String naziv, Color boja) {\r
+               polja = new ArrayList<Polje>();\r
+               nepromenljivaListaPolja = Collections.unmodifiableList(polja);\r
+               this.naziv = naziv;\r
+               Prikaz.put(naziv, polja, Polje::getX, Polje::getY, this::toString, boja);\r
+       }\r
+\r
+       // Kreira novo prazno resenje\r
+       public Put() {\r
+               this("Trenutni", Prikaz.TIRKIZNA);\r
+       }\r
+\r
+       // Kreira novo resenje sa istim sadrzajem kao original\r
+       public Put(Put original) {\r
+               this("Optimalan", Prikaz.LJUBICASTA);\r
+               polja.addAll(original.polja);\r
+       }\r
+\r
+       // Dodaje polje u resenje\r
+       public void dodaj(int x, int y, int v) {\r
+               polja.add(new Polje(x, y, v));\r
+               Prikaz.osveziPut(naziv);\r
+       }\r
+\r
+       // Izbacuje poslednje polje iz puta\r
+       public void izbaciKraj() {\r
+               if (getLength() > 0) {\r
+                       polja.remove(getLength() - 1);\r
+                       Prikaz.osveziPut(naziv);\r
+               } else {\r
+                       throw new IllegalStateException("Resenje je vec prazno");\r
+               }\r
+       }\r
+\r
+       // Stampa put\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
+               Prikaz.put("Trenutni", null, null, null);\r
+               Prikaz.put("Optimalan", null, null, null);\r
+               Prikaz.put("Najbolji", polja, Polje::getX, Polje::getY, this::toString, Prikaz.LJUBICASTA);\r
+       }\r
+\r
+       public String toString() {\r
+               return getVrednost() + "\u20ac " + getLength() + "m";\r
+       }\r
+\r
+       // Vraca duzinu puta\r
+       public int getLength() {\r
+               return polja.size();\r
+       }\r
+\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\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
+       // 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
diff --git a/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Resenje.java b/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Resenje.java
deleted file mode 100644 (file)
index dbabd6d..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-import java.util.ArrayList;\r
-import java.util.Collections;\r
-import java.util.List;\r
-\r
-import javafx.scene.paint.Color;\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
-       // Potrebno za graficki prikaz\r
-       private String naziv;\r
-\r
-       // Potrebno za graficki prikaz\r
-       private Resenje(String naziv, Color boja) {\r
-               polja = new ArrayList<Polje>();\r
-               nepromenljivaListaPolja = Collections.unmodifiableList(polja);\r
-               this.naziv = naziv;\r
-               Prikaz.put(naziv, polja, Polje::getX, Polje::getY, this::toString, boja);\r
-       }\r
-\r
-       // Kreira novo prazno resenje\r
-       public Resenje() {\r
-               this("Trenutni", Prikaz.TIRKIZNA);\r
-       }\r
-\r
-       // Kreira novo resenje sa istim sadrzajem kao original\r
-       public Resenje(Resenje original) {\r
-               this("Optimalan", Prikaz.LJUBICASTA);\r
-               polja.addAll(original.polja);\r
-       }\r
-\r
-       // Dodaje polje u resenje\r
-       public void dodaj(int x, int y, int v) {\r
-               polja.add(new Polje(x, y, v));\r
-               Prikaz.osveziPut(naziv);\r
-       }\r
-\r
-       // Izbacuje poslednje polje iz resenja\r
-       public void izbaciKraj() {\r
-               if (getLength() > 0) {\r
-                       polja.remove(getLength() - 1);\r
-                       Prikaz.osveziPut(naziv);\r
-               } else {\r
-                       throw new IllegalStateException("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
-               Prikaz.put("Trenutni", null, null, null);\r
-               Prikaz.put("Optimalan", null, null, null);\r
-               Prikaz.put("Najbolji", polja, Polje::getX, Polje::getY, this::toString, Prikaz.LJUBICASTA);\r
-       }\r
-\r
-       public String toString() {\r
-               return getVrednost() + "\u20ac " + getLength() + "m";\r
-       }\r
-\r
-       // Vraca duzinu resenja\r
-       public int getLength() {\r
-               return polja.size();\r
-       }\r
-\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\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
-       // 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
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner