From: Doni Pracner Date: Sun, 4 Dec 2016 22:49:23 +0000 (+0100) Subject: sklonjena stara resenja za najbolji put X-Git-Url: https://svarog.pmf.uns.ac.rs/gitweb/?a=commitdiff_plain;h=d75e70fd4e3deb018ee29b445e9a8ff5e2b19487;p=spa2-materijali.git sklonjena stara resenja za najbolji put --- diff --git a/PretrazivanjeSaVracanjem/Lavirint/NajboljiPut/LavirintProgramV2.java b/PretrazivanjeSaVracanjem/Lavirint/NajboljiPut/LavirintProgramV2.java deleted file mode 100644 index 1b1c4ae..0000000 --- a/PretrazivanjeSaVracanjem/Lavirint/NajboljiPut/LavirintProgramV2.java +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Program za nalazenje puta u lavirintu. - * - * Opcija tri nalazi sve puteve i medju njima bira najkraci. - * - * Opcija cetiriresava lavirint u kome su rasuti zlatnici na poljima i - * nalazi put na kome se kupi najvise zlatnika. - */ - -public class LavirintProgramV2 { - - public static void main(String[] args) { - Svetovid.out.println("Unesite ime fajla: "); - String fajl = Svetovid.in.readLine(); - if (!Svetovid.testIn(fajl)) { - System.out.println("Greska: nema fajla!"); - return; - } - - LavirintV2 l = new LavirintV2(fajl); - Resenje r; - - if (l != null) { - System.out.println("3 - nalazenje najkraceg puta"); - System.out.println("4 - nalazenje najvrednijeg puta"); - System.out.println("Unesite izbor 1-4:"); - int op = Svetovid.in.readInt(); - - switch (op) { - case 3: - r = l.najkraciPut(0, 0); - if (r != null) { - r.stampaj(); - } else { - System.out.println("Nema resenja"); - } - break; - case 4: - r = l.najvrednijiPut(0, 0); - if (r != null) { - r.stampaj(); - System.out.println("Vrednost puta: " + r.getVrednost()); - } else { - System.out.println("Nema resenja"); - } - break; - default: - System.err.println("Uneli ste pogresan izbor"); - } - } - } -} \ No newline at end of file diff --git a/PretrazivanjeSaVracanjem/Lavirint/NajboljiPut/LavirintV2.java b/PretrazivanjeSaVracanjem/Lavirint/NajboljiPut/LavirintV2.java deleted file mode 100644 index 57a536a..0000000 --- a/PretrazivanjeSaVracanjem/Lavirint/NajboljiPut/LavirintV2.java +++ /dev/null @@ -1,86 +0,0 @@ -/** - * Klasa Lavirint sadrzi 2 javne i jednu privatnu metodu za trazenje puteva. - * - * Klase KomparatorPoDuzini i KomparatorPoVrednosti predstavljaju komparatore - * koji se korste pri trazenju najkraceg i najvrednijeg puta. - */ - -import java.util.Comparator; - -public class LavirintV2 { - - // Polje m sadrzi kompletnu mapu - private Mapa m; - // Polje optResenje sluzi za pamcenje optimalnog resenja - private Resenje optResenje; - - // Ucitava mapu iz datog fajla i stampa je na ekran - LavirintV2(String imeFajla) { - m = Mapa.ucitajIzFajla(imeFajla); - m.stampaj(); - } - - // Kreira optimalno resenje za put, pri cemu se za optimalnost resenja - // koristi komparator po duzini resenja, tj. trazi se najkrace resenje - // Samo resenje kreira se u metodi optPut - public Resenje najkraciPut(int x, int y) { - Resenje r = new Resenje(); - optPut(x, y, r, new KomparatorPoDuzini()); - return optResenje; - } - - // Kreira optimalno resenje za put, pri cemu se za optimalnost resenja - // koristi komparator po duzini resenja, tj. trazi se najvrednije resenje - // Samo resenje kreira se u metodi optPut - public Resenje najvrednijiPut(int x, int y) { - Resenje r = new Resenje(); - optPut(x, y, r, new KomparatorPoVredosti()); - return optResenje; - } - - // Proverava da li postoji put korsiteci pretrazivanje sa vracanjem - // Ukoliko se pronadje na prvi ili optimalniji put, taj put se pamti u - // optResenje - // Optimalnost resenja se proverava komparatorom - private void optPut(int x, int y, Resenje r, Comparator c) { - if (x < 0 || x >= m.getSirina() || y < 0 || y >= m.getVisina()) { - return; - } - if (m.getPos(x, y)) { - return; - } - if (m.getMat(x, y) == Mapa.ZID) { - return; - } - if (m.getMat(x, y) == Mapa.IZLAZ) { - r.dodaj(x, y, 0); - if (optResenje == null || c.compare(r, optResenje) < 0) { - optResenje = r.clone(); - } - r.izbaciKraj(); - } else { - m.setPos(x, y, true); - r.dodaj(x, y, m.getMat(x, y)); - optPut(x + 1, y, r, c); - optPut(x, y + 1, r, c); - optPut(x, y - 1, r, c); - optPut(x - 1, y, r, c); - m.setPos(x, y, false); - r.izbaciKraj(); - } - } -} - -// Komparator za resenja po duzini resenja -class KomparatorPoDuzini implements Comparator { - public int compare(Resenje r1, Resenje r2) { - return r1.getLength() - r2.getLength(); - } -} - -// Komparator za resenja po vrednosti resenja -class KomparatorPoVredosti implements Comparator { - public int compare(Resenje r1, Resenje r2) { - return r2.getVrednost() - r1.getVrednost(); - } -} \ No newline at end of file