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: 3c24990)
raw | patch | inline | side by side (parent: 3c24990)
author | Doni Pracner <quinnuendo@gmail.com> | |
Sun, 4 Dec 2016 22:49:23 +0000 (23:49 +0100) | ||
committer | Doni Pracner <quinnuendo@gmail.com> | |
Sun, 4 Dec 2016 22:49:23 +0000 (23:49 +0100) |
PretrazivanjeSaVracanjem/Lavirint/NajboljiPut/LavirintProgramV2.java | [deleted file] | patch | blob | history |
PretrazivanjeSaVracanjem/Lavirint/NajboljiPut/LavirintV2.java | [deleted file] | patch | blob | history |
diff --git a/PretrazivanjeSaVracanjem/Lavirint/NajboljiPut/LavirintProgramV2.java b/PretrazivanjeSaVracanjem/Lavirint/NajboljiPut/LavirintProgramV2.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**\r
- * Program za nalazenje puta u lavirintu.\r
- * \r
- * Opcija tri nalazi sve puteve i medju njima bira najkraci.\r
- * \r
- * Opcija cetiriresava lavirint u kome su rasuti zlatnici na poljima i\r
- * nalazi put na kome se kupi najvise zlatnika.\r
- */\r
-\r
-public class LavirintProgramV2 {\r
-\r
- public static void main(String[] args) {\r
- Svetovid.out.println("Unesite ime fajla: ");\r
- String fajl = Svetovid.in.readLine();\r
- if (!Svetovid.testIn(fajl)) {\r
- System.out.println("Greska: nema fajla!");\r
- return;\r
- }\r
-\r
- LavirintV2 l = new LavirintV2(fajl);\r
- Resenje r;\r
-\r
- if (l != null) {\r
- System.out.println("3 - nalazenje najkraceg puta");\r
- System.out.println("4 - nalazenje najvrednijeg puta");\r
- System.out.println("Unesite izbor 1-4:");\r
- int op = Svetovid.in.readInt();\r
-\r
- switch (op) {\r
- case 3:\r
- r = l.najkraciPut(0, 0);\r
- if (r != null) {\r
- r.stampaj();\r
- } else {\r
- System.out.println("Nema resenja");\r
- }\r
- break;\r
- case 4:\r
- r = l.najvrednijiPut(0, 0);\r
- if (r != null) {\r
- r.stampaj();\r
- System.out.println("Vrednost puta: " + r.getVrednost());\r
- } else {\r
- System.out.println("Nema resenja");\r
- }\r
- break;\r
- default:\r
- System.err.println("Uneli ste pogresan izbor");\r
- }\r
- }\r
- }\r
-}
\ No newline at end of file
diff --git a/PretrazivanjeSaVracanjem/Lavirint/NajboljiPut/LavirintV2.java b/PretrazivanjeSaVracanjem/Lavirint/NajboljiPut/LavirintV2.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/**\r
- * Klasa Lavirint sadrzi 2 javne i jednu privatnu metodu za trazenje puteva.\r
- * \r
- * Klase KomparatorPoDuzini i KomparatorPoVrednosti predstavljaju komparatore\r
- * koji se korste pri trazenju najkraceg i najvrednijeg puta.\r
- */\r
-\r
-import java.util.Comparator;\r
-\r
-public class LavirintV2 {\r
-\r
- // Polje m sadrzi kompletnu mapu\r
- private Mapa m;\r
- // Polje optResenje sluzi za pamcenje optimalnog resenja\r
- private Resenje optResenje;\r
-\r
- // Ucitava mapu iz datog fajla i stampa je na ekran\r
- LavirintV2(String imeFajla) {\r
- m = Mapa.ucitajIzFajla(imeFajla);\r
- m.stampaj();\r
- }\r
-\r
- // 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
- optPut(x, y, r, new KomparatorPoDuzini());\r
- return optResenje;\r
- }\r
-\r
- // 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
- 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
- if (x < 0 || x >= m.getSirina() || y < 0 || y >= m.getVisina()) {\r
- return;\r
- }\r
- if (m.getPos(x, y)) {\r
- return;\r
- }\r
- if (m.getMat(x, y) == Mapa.ZID) {\r
- 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 = r.clone();\r
- }\r
- r.izbaciKraj();\r
- } else {\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
- m.setPos(x, y, false);\r
- r.izbaciKraj();\r
- }\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
- 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
- return r2.getVrednost() - r1.getVrednost();\r
- }\r
-}
\ No newline at end of file