gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under the git version control system
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 981e372)
raw | patch | inline | side by side (parent: 981e372)
author | Doni Pracner <quinnuendo@gmail.com> | |
Tue, 29 Nov 2016 21:06:18 +0000 (22:06 +0100) | ||
committer | Doni Pracner <quinnuendo@gmail.com> | |
Tue, 29 Nov 2016 21:06:18 +0000 (22:06 +0100) |
PretrazivanjeSaVracanjem/Lavirint/PostojanjePuta/Lavirint.java | [deleted file] | patch | blob | history |
PretrazivanjeSaVracanjem/Lavirint/PostojanjePuta/LavirintProgram.java | [deleted file] | patch | blob | history |
PretrazivanjeSaVracanjem/Lavirint/PostojanjePuta/Mapa.java | [deleted file] | patch | blob | history |
diff --git a/PretrazivanjeSaVracanjem/Lavirint/PostojanjePuta/Lavirint.java b/PretrazivanjeSaVracanjem/Lavirint/PostojanjePuta/Lavirint.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/**\r
- * Klasa Lavirint sadrzi 2 javne i jednu privatnu metodu za trazenje puteva.\r
- * \r
- */\r
-\r
-public class Lavirint {\r
-\r
- // Polje m sadrzi kompletnu mapu\r
- private Mapa m;\r
-\r
- // Ucitava mapu iz datog fajla i stampa je na ekran\r
- Lavirint(String imeFajla) {\r
- m = Mapa.ucitajIzFajla(imeFajla);\r
- m.stampaj();\r
- }\r
-\r
- // Provarava da li postoji put do izlaza i vraca vrednost true\r
- // ako postoji put ili vrednost false ako ne postoji\r
- public boolean postojiPut(int x, int y) {\r
- if (x < 0 || x >= m.getSirina() || y < 0 || y >= m.getVisina()) {\r
- return false;\r
- }\r
- if (m.getPos(x, y) == true) {\r
- return false;\r
- }\r
- if (m.getMat(x, y) == Mapa.ZID) {\r
- return false;\r
- }\r
- if (m.getMat(x, y) == Mapa.IZLAZ) {\r
- return true;\r
- } else {\r
- m.setPos(x, y, true);\r
- if (postojiPut(x + 1, y)) {\r
- return true;\r
- }\r
- if (postojiPut(x - 1, y)) {\r
- return true;\r
- }\r
- if (postojiPut(x, y + 1)) {\r
- return true;\r
- }\r
- if (postojiPut(x, y - 1)) {\r
- return true;\r
- }\r
- m.setPos(x, y, false);\r
- return false;\r
- }\r
- }\r
-\r
- // Poziva metodu rput da pronadje i ispise put, ako postoji\r
- // Ukoliko put ne postoji, ispisuje poruku o gresci\r
- public void nadjiPut(int x, int y) {\r
- if (!rput(x, y)) {\r
- System.err.println("Ne postoji put");\r
- }\r
- }\r
-\r
- // Proverava da li postoji put korsiteci pretrazivanje sa vracanjem\r
- // Ukoliko se pronadje izlaz iz lavirinta, stampa se put u obrnutom\r
- // redosledu\r
- // Put se stampa pri povratku iz rekurzije\r
- private boolean rput(int x, int y) {\r
- if (x < 0 || x >= m.getSirina() || y < 0 || y >= m.getVisina()) {\r
- return false;\r
- }\r
- if (m.getPos(x, y)) {\r
- return false;\r
- }\r
- if (m.getMat(x, y) == Mapa.ZID) {\r
- return false;\r
- }\r
- if (m.getMat(x, y) == Mapa.IZLAZ) {\r
- System.out.println(x + " " + y);\r
- return true;\r
- } else {\r
- m.setPos(x, y, true);\r
- if (rput(x + 1, y) || rput(x, y + 1) || rput(x, y - 1)\r
- || rput(x - 1, y)) {\r
- System.out.println(x + " " + y);\r
- return true;\r
- }\r
- m.setPos(x, y, false);\r
- return false;\r
- }\r
- }\r
-}\r
diff --git a/PretrazivanjeSaVracanjem/Lavirint/PostojanjePuta/LavirintProgram.java b/PretrazivanjeSaVracanjem/Lavirint/PostojanjePuta/LavirintProgram.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/**\r
- * Program za nalazenje puta u lavirintu.\r
- * \r
- * Date su dve varijante problema\r
- * \r
- * Jednostavnije je samo nalazenje da li put postoji.\r
- * \r
- * Prosirenje tog resenja nam ispisuje taj nadjeni put.\r
- */\r
-\r
-public class LavirintProgram {\r
-\r
- public static void main(String[] args) {\r
- Svetovid.out.println("Unesite ime fajla: ");\r
- String fajl = Svetovid.in.readLine();\r
- if (!Svetovid.testIn(fajl)) {\r
- System.out.println("Greska: nema fajla!");\r
- return;\r
- }\r
-\r
- Lavirint l = new Lavirint(fajl);\r
-\r
- if (l != null) {\r
- System.out.println("1 - da li postoji put");\r
- System.out.println("2 - ispis nekog puta (ako postoji)");\r
- System.out.println("Unesite izbor 1-2:");\r
- int op = Svetovid.in.readInt();\r
-\r
- switch (op) {\r
- case 1:\r
- if (l.postojiPut(0, 0)) {\r
- System.out.println("Postoji put");\r
- } else {\r
- System.out.println("Ne postoji put");\r
- }\r
- break;\r
- case 2:\r
- l.nadjiPut(0, 0);\r
- break;\r
- default:\r
- System.err.println("Uneli ste pogresan izbor");\r
- }\r
- }\r
- }\r
-}
\ No newline at end of file
diff --git a/PretrazivanjeSaVracanjem/Lavirint/PostojanjePuta/Mapa.java b/PretrazivanjeSaVracanjem/Lavirint/PostojanjePuta/Mapa.java
+++ /dev/null
@@ -1,78 +0,0 @@
-public class Mapa {\r
- public final static int IZLAZ = -99;\r
- public final static int ZID = -11;\r
- public final static int ERROR = Integer.MIN_VALUE;\r
-\r
- private int visina, sirina;\r
- private int[][] mat;\r
- private boolean[][] pos;\r
-\r
- public int getSirina() {\r
- return sirina;\r
- }\r
-\r
- public int getVisina() {\r
- return visina;\r
- }\r
-\r
- public void setPos(int x, int y, boolean b) {\r
- if (0 <= x && x < sirina && 0 <= y && y < visina) {\r
- pos[x][y] = b;\r
- }\r
- }\r
-\r
- public boolean getPos(int x, int y) {\r
- if (0 <= x && x < sirina && 0 <= y && y < visina) {\r
- return pos[x][y];\r
- } else {\r
- return true;\r
- }\r
- }\r
-\r
- public int getMat(int x, int y) {\r
- if (0 <= x && x < sirina && 0 <= y && y < visina) {\r
- return mat[x][y];\r
- } else {\r
- return ERROR;\r
- }\r
- }\r
-\r
- public Mapa(int sirina, int visina) {\r
- this.sirina = sirina;\r
- this.visina = visina;\r
- mat = new int[sirina][visina];\r
- pos = new boolean[sirina][visina];\r
- }\r
-\r
- public static Mapa ucitajIzFajla(String imeFajla) {\r
- if (!Svetovid.testIn(imeFajla)) {\r
- return null;\r
- }\r
-\r
- int sirina = Svetovid.in(imeFajla).readInt();\r
- int visina = Svetovid.in(imeFajla).readInt();\r
- if (sirina >= 0 && visina >= 0) {\r
- Mapa res = new Mapa(sirina, visina);\r
- for (int j = 0; j < visina; j++)\r
- for (int i = 0; i < sirina; i++)\r
- res.mat[i][j] = Svetovid.in(imeFajla).readInt();\r
- Svetovid.closeIn(imeFajla);\r
- return res;\r
- } else {\r
- Svetovid.closeIn(imeFajla);\r
- return null;\r
- }\r
- }\r
-\r
- public void stampaj() {\r
- if (visina != 0 && sirina != 0) {\r
- System.out.println(visina + " " + sirina);\r
- for (int j = 0; j < visina; j++) {\r
- for (int i = 0; i < sirina; i++) {\r
- System.out.print(mat[i][j] + "\t");\r
- }\r
- System.out.println();\r
- }\r
- }\r
- }\r
-}\r