gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
9b92c19834bbee7ed8090f9b86f2cbbbc40286d4
[spa2-materijali.git] / PretrazivanjeSaVracanjem / Lavirint / ObjedinjenoResenje / Resenje.java
1 import java.util.ArrayList;
2 import java.util.Collections;
3 import java.util.List;
5 /**
6 * Klasa Resenje koristi se za pamcenje puta kroz mapu.
7 */
8 public class Resenje {
10 // Pamtimo sva polja na putu
11 private ArrayList<Polje> polja;
13 // Dodato da se omoguci pristup poljima resenja "od spolja" (za proveru kvaliteta puta na primer),
14 // ali tako da ne moze da se utice na sam sadrzaj te liste
15 private List<Polje> nepromenljivaListaPolja;
17 // Kreira novo prazno resenje
18 public Resenje() {
19 polja = new ArrayList<Polje>();
20 nepromenljivaListaPolja = Collections.unmodifiableList(polja);
21 }
23 // Kreira novo resenje sa istim sadrzajem kao original
24 public Resenje(Resenje original) {
25 this();
26 polja.addAll(original.polja);
27 }
29 // Dodaje polje u resenje
30 public void dodaj(int x, int y, int v) {
31 polja.add(new Polje(x, y, v));
32 }
34 // Izbacuje poslednje polje iz resenja
35 public void izbaciKraj() {
36 if (getLength() > 0) {
37 polja.remove(getLength() - 1);
38 } else {
39 throw new IllegalStateException("Resenje je vec prazno");
40 }
41 }
43 // Stampa resenje
44 public void stampaj() {
45 System.out.println(getLength());
46 for (int i = 0; i < getLength(); i++)
47 System.out.println(polja.get(i));
48 }
50 public String toString() {
51 return getVrednost() + "\u20ac " + getLength() + "m";
52 }
54 // Vraca duzinu resenja
55 public int getLength() {
56 return polja.size();
57 }
59 // Vraca i-to polje na putu
60 // Ne koristi se u ovoj verziji zadatka. Moze se koristiti za proveru kvaliteta resenja
61 public Polje getPolje(int i) {
62 return polja.get(i);
63 }
65 // Vraca sva polja na putu
66 // Ne koristi se u ovoj verziji zadatka. Moze se koristiti za proveru kvaliteta resenja
67 public List<Polje> getPolja() {
68 return nepromenljivaListaPolja;
69 }
71 // Vraca vrednost puta
72 // Vrednost se definise kao zbir svih vrednosti polja na putu
73 public int getVrednost() {
74 int rez = 0;
75 for (Polje p : polja) {
76 rez = rez + p.getV();
77 }
78 return rez;
79 }
80 }
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner