gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Lavirint, primer pretrazivanja sa vracanjem za test
[spa2-materijali.git] / PretrazivanjeSaVracanjem / Lavirint / Resenje.java
1 /**
2 * Klasa Resenje koristi se za pamcenje pronadjenog puta.
3 *
4 * Polje Polja se koristi za pamcenje svih polja na putu.
5 *
6 * Polje nepromenljivaListaPolja je dodata da se omoguci
7 * pristup poljima resenja "spolja" (za proveru kvaliteta puta na primer),
8 * ali tako da ne moze da se utice na sam sadrzaj te liste.
9 */
10 import java.util.ArrayList;
11 import java.util.List;
12 import java.util.Collections;
14 public class Resenje implements Cloneable {
15 private ArrayList<Polje> polja;
16 private List<Polje> nepromenljivaListaPolja;
18 Resenje() {
19 polja = new ArrayList<Polje>();
20 nepromenljivaListaPolja = Collections.unmodifiableList(polja);
21 }
23 // Dodaje pulje u resenje
24 public void dodaj(int x, int y, int v) {
25 polja.add(new Polje(x, y, v));
26 }
28 // Izbacuje polje iz resenja
29 public void izbaciKraj() {
30 if (getLength() > 0) {
31 polja.remove(getLength() - 1);
32 } else {
33 System.err.println("greska: resenje je vec prazno");
34 }
35 }
37 // Stampa resenje
38 public void stampaj() {
39 System.out.println(getLength());
40 for (int i = 0; i < getLength(); i++)
41 System.out.println(polja.get(i));
42 }
44 // Vraca duzinu resenja
45 public int getLength() {
46 return polja.size();
47 }
49 // Vraca i-to polje na putu. Ne koristi se u ovoj verziji zadatka.
50 // Moze se koristiti za proveru kvaliteta resenja
51 public Polje getPolje(int i) {
52 return polja.get(i);
53 }
55 // Vraca sva polja na putu. Ne koristi se u ovoj verziji zadatka.
56 // Moze se koristiti za proveru kvaliteta resenja
57 public List<Polje> getPolja() {
58 return nepromenljivaListaPolja;
59 }
61 // Kreira klon od resenja
62 @Override
63 public Resenje clone() {
64 Resenje rez = new Resenje();
65 for (Polje p : polja) {
66 rez.dodaj(p.getX(), p.getY(), p.getV());
67 }
68 return rez;
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