From 1b832014e4d2d31b2502f4688623140d722005b1 Mon Sep 17 00:00:00 2001 From: Doni Pracner Date: Tue, 5 Dec 2017 15:51:08 +0100 Subject: [PATCH] Laviritn, Objedinjeno resenje, doterivanja 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. --- .../Lavirint/ObjedinjenoResenje/Lavirint.java | 48 +++++++++---------- .../ObjedinjenoResenje/LavirintProgram.java | 2 +- .../{Resenje.java => Put.java} | 18 +++---- 3 files changed, 34 insertions(+), 34 deletions(-) rename PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/{Resenje.java => Put.java} (82%) diff --git a/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Lavirint.java b/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Lavirint.java index 77069ae..5b84e5a 100644 --- a/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Lavirint.java +++ b/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Lavirint.java @@ -12,7 +12,7 @@ public class Lavirint { private Mapa m; // Polje optResenje sluzi za pamcenje optimalnog resenja - private Resenje optResenje; + private Put optResenje; // Ucitava mapu iz datog fajla i stampa je na ekran Lavirint(String imeFajla) { @@ -91,8 +91,8 @@ public class Lavirint { // 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(); + public Put najkraciPut(int x, int y) { + Put r = new Put(); optPut(x, y, r, new KomparatorPoDuzini()); return optResenje; } @@ -100,17 +100,17 @@ public class Lavirint { // 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()); + public Put najvrednijiPut(int x, int y) { + Put trenutni = new Put(); + optPut(x, y, trenutni, 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) { + // Optimalnost puta se proverava komparatorom + private void optPut(int x, int y, Put trenutni, Comparator c) { if (x < 0 || x >= m.getSirina() || y < 0 || y >= m.getVisina()) { return; } @@ -121,36 +121,36 @@ public class Lavirint { return; } if (m.getMat(x, y) == Mapa.IZLAZ) { - r.dodaj(x, y, 0); - if (optResenje == null || c.compare(r, optResenje) < 0) { - optResenje = new Resenje(r); + trenutni.dodaj(x, y, 0); + if (optResenje == null || c.compare(trenutni, optResenje) < 0) { + optResenje = new Put(trenutni); } - r.izbaciKraj(); + trenutni.izbaciKraj(); return; } // pokusavamo da trazimo dalje put 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); + trenutni.dodaj(x, y, m.getMat(x, y)); + optPut(x + 1, y, trenutni, c); + optPut(x, y + 1, trenutni, c); + optPut(x, y - 1, trenutni, c); + optPut(x - 1, y, trenutni, c); m.setPos(x, y, false); - r.izbaciKraj(); + trenutni.izbaciKraj(); } } -// Komparator za resenja po duzini resenja -class KomparatorPoDuzini implements Comparator { - public int compare(Resenje r1, Resenje r2) { +// Komparator za puteve po duzini resenja +class KomparatorPoDuzini implements Comparator { + public int compare(Put r1, Put r2) { return r1.getLength() - r2.getLength(); } } -// Komparator za resenja po vrednosti resenja -class KomparatorPoVredosti implements Comparator { - public int compare(Resenje r1, Resenje r2) { +// Komparator za puteve po vrednosti resenja +class KomparatorPoVredosti implements Comparator { + public int compare(Put r1, Put r2) { return r2.getVrednost() - r1.getVrednost(); } } diff --git a/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/LavirintProgram.java b/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/LavirintProgram.java index 6566938..01adf52 100644 --- a/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/LavirintProgram.java +++ b/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/LavirintProgram.java @@ -25,7 +25,7 @@ public class LavirintProgram { } Lavirint l = new Lavirint(fajl); - Resenje r; + Put r; if (l != null) { System.out.println("1 - da li postoji put"); diff --git a/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Resenje.java b/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Put.java similarity index 82% rename from PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Resenje.java rename to PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Put.java index dbabd6d..e942883 100644 --- a/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Resenje.java +++ b/PretrazivanjeSaVracanjem/Lavirint/ObjedinjenoResenje/Put.java @@ -5,14 +5,14 @@ import java.util.List; import javafx.scene.paint.Color; /** - * Klasa Resenje koristi se za pamcenje puta kroz mapu. + * Klasa Put koristi se za pamcenje puta kroz mapu. */ -public class Resenje { +public class Put { // Pamtimo sva polja na putu private ArrayList polja; - // Dodato da se omoguci pristup poljima resenja "od spolja" (za proveru kvaliteta puta na primer), + // Dodato da se omoguci pristup poljima puta "od spolja" (za proveru kvaliteta puta na primer), // ali tako da ne moze da se utice na sam sadrzaj te liste private List nepromenljivaListaPolja; @@ -20,7 +20,7 @@ public class Resenje { private String naziv; // Potrebno za graficki prikaz - private Resenje(String naziv, Color boja) { + private Put(String naziv, Color boja) { polja = new ArrayList(); nepromenljivaListaPolja = Collections.unmodifiableList(polja); this.naziv = naziv; @@ -28,12 +28,12 @@ public class Resenje { } // Kreira novo prazno resenje - public Resenje() { + public Put() { this("Trenutni", Prikaz.TIRKIZNA); } // Kreira novo resenje sa istim sadrzajem kao original - public Resenje(Resenje original) { + public Put(Put original) { this("Optimalan", Prikaz.LJUBICASTA); polja.addAll(original.polja); } @@ -44,7 +44,7 @@ public class Resenje { Prikaz.osveziPut(naziv); } - // Izbacuje poslednje polje iz resenja + // Izbacuje poslednje polje iz puta public void izbaciKraj() { if (getLength() > 0) { polja.remove(getLength() - 1); @@ -54,7 +54,7 @@ public class Resenje { } } - // Stampa resenje + // Stampa put public void stampaj() { System.out.println(getLength()); for (int i = 0; i < getLength(); i++) { @@ -69,7 +69,7 @@ public class Resenje { return getVrednost() + "\u20ac " + getLength() + "m"; } - // Vraca duzinu resenja + // Vraca duzinu puta public int getLength() { return polja.size(); } -- 2.17.1