X-Git-Url: http://svarog.pmf.uns.ac.rs/gitweb/?a=blobdiff_plain;f=PretrazivanjeSaVracanjem%2FLavirint%2FNajboljiPut%2FLavirintV2.java;fp=PretrazivanjeSaVracanjem%2FLavirint%2FNajboljiPut%2FLavirintV2.java;h=0000000000000000000000000000000000000000;hb=d75e70fd4e3deb018ee29b445e9a8ff5e2b19487;hp=57a536af18c058b23111a2241861ad5d45711efe;hpb=3c24990b2b5db35d728a4a706ba4963d3c936a76;p=spa2-materijali.git 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