gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Pojednostavljivanje resenja za NajboljiPut
[spa2-materijali.git] / PretrazivanjeSaVracanjem / Lavirint / NajboljiPut / Put.java
2 /**
3 * Klasa Put koristi se za pamcenje pronadjenog puta.
4 *
5 * Polje Polja se koristi za pamcenje svih polja na putu.
6 *
7 */
8 import java.util.ArrayList;
10 public class Put {
11 private ArrayList<Polje> polja;
13 public Put() {
14 polja = new ArrayList<Polje>();
15 }
17 /**
18 * Pravi novo resenje sa istim sadrzajem kao original
19 */
20 public Put(Put original) {
21 // pozovemo "podrazumevani" konstruktor
22 this();
23 // iskopiramo sva polja iz originala
24 for (Polje p : original.polja) {
25 dodaj(p.getX(), p.getY(), p.getV());
26 }
27 }
29 // Dodaje pulje u resenje
30 public void dodaj(int x, int y, int v) {
31 polja.add(new Polje(x, y, v));
32 }
34 // Izbacuje polje iz resenja
35 public void izbaciKraj() {
36 if (getLength() > 0) {
37 polja.remove(getLength() - 1);
38 } else {
39 System.err.println("greska: 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 StringBuilder sb = new StringBuilder();
52 sb.append("Resenje: [ ");
53 if (getLength() > 0) {
54 sb.append(polja.get(0));
55 for (int i = 1; i < getLength(); i++) {
56 sb.append(", " + polja.get(i));
57 }
58 }
59 sb.append(" ]");
61 return sb.toString();
62 }
64 // Vraca duzinu resenja
65 public int getLength() {
66 return polja.size();
67 }
69 // Kreira nezavisnu kopiju ovog resenja
70 public Put kopija() {
71 Put rez = new Put();
72 for (Polje p : polja) {
73 rez.dodaj(p.getX(), p.getY(), p.getV());
74 }
75 return rez;
76 }
78 // Vraca vrednost puta
79 // Vrednost se definise kao zbir svih vrednosti polja na putu
80 public int getVrednost() {
81 int rez = 0;
82 for (Polje p : polja) {
83 rez = rez + p.getV();
84 }
85 return rez;
86 }
88 public class Polje {
89 private int x, y, v;
91 Polje(int x, int y, int v) {
92 this.x = x;
93 this.y = y;
94 this.v = v;
95 }
97 public int getX() {
98 return x;
99 }
101 public int getY() {
102 return y;
105 public int getV() {
106 return v;
109 public String toString() {
110 return x + " " + y + " " + v;
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner