gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Lavirint - trazenje najboljeg puta
[spa2-materijali.git] / PretrazivanjeSaVracanjem / Lavirint / NajboljiPut / 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;
17 Resenje() {
18 polja = new ArrayList<Polje>();
19 }
21 // Dodaje pulje u resenje
22 public void dodaj(int x, int y, int v) {
23 polja.add(new Polje(x, y, v));
24 }
26 // Izbacuje polje iz resenja
27 public void izbaciKraj() {
28 if (getLength() > 0) {
29 polja.remove(getLength() - 1);
30 } else {
31 System.err.println("greska: resenje je vec prazno");
32 }
33 }
35 // Stampa resenje
36 public void stampaj() {
37 System.out.println(getLength());
38 for (int i = 0; i < getLength(); i++)
39 System.out.println(polja.get(i));
40 }
42 // Vraca duzinu resenja
43 public int getLength() {
44 return polja.size();
45 }
47 // Vraca i-to polje na putu. Ne koristi se u ovoj verziji zadatka.
48 // Moze se koristiti za proveru kvaliteta resenja
49 public Polje getPolje(int i) {
50 return polja.get(i);
51 }
53 // Kreira klon od resenja
54 @Override
55 public Resenje clone() {
56 Resenje rez = new Resenje();
57 for (Polje p : polja) {
58 rez.dodaj(p.getX(), p.getY(), p.getV());
59 }
60 return rez;
61 }
63 // Vraca vrednost puta
64 // Vrednost se definise kao zbir svih vrednosti polja na putu
65 public int getVrednost() {
66 int rez = 0;
67 for (Polje p : polja) {
68 rez = rez + p.getV();
69 }
70 return rez;
71 }
72 }
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner