fork download
  1. public class Ideone {
  2.  
  3.  
  4. public static final int DX[] = {1,0,-1,0};
  5. public static final int DY[] = {0,1,0, -1};
  6.  
  7. //
  8. // Oznake:
  9. //
  10. // '#' zid
  11. // ' ' hodnik
  12. // 'C' cilj
  13. // '.' oznaka, da smo trenutno lokacijo vkljucili v pot
  14. //
  15.  
  16. // Rekurzivna funkcija, ki poišče pot skozi labirint
  17. //
  18. // - labirint je podan z dvodimenzionalnim poljem "labirint"
  19. // - "x" in "y" sta trenutni koordinati potnika, ki se premika proti cilju
  20. //
  21.  
  22. public static boolean najdiPot(char[][] labirint, int x, int y) {
  23. // preveri ali je y-koordinata veljavna
  24. if(y < 0 || y > labirint.length)
  25. return false;
  26.  
  27. // preveri ali je x-koordinata veljavna
  28. if(x < 0 || x > labirint.length)
  29. return false;
  30.  
  31. // preveri ali smo prispeli do cilja?
  32. if(labirint[x][y] == 'C')
  33. return true;
  34.  
  35. // ali je na trenutni lokaciji zid?
  36. if(labirint[x][y] == '#')
  37. return false;
  38.  
  39. // ali smo v tej tocki že bili?
  40. if(labirint[x][y] == '.')
  41. return false;
  42.  
  43. // če smo prispeli do sem, pomeni, da smo izvedli veljavni premik
  44. char temp = labirint[x][y];
  45. labirint[x][y] = '.';
  46.  
  47. for(int i = 0; i < 4; i++){
  48. if(najdiPot(labirint, x + DX[i], y + DY[i]))
  49. return true;
  50. }
  51.  
  52. // če smo prišli do sem, pomeni, da ta položaj ni na poti do cilja
  53. labirint[x][y] = temp;
  54.  
  55. return false;
  56. }
  57.  
  58. public static void izpis(char[][] labirint)
  59. {
  60. for (int i = 0; i < labirint.length; i++)
  61. {
  62. for (int j = 0; j < labirint[i].length; j++)
  63. System.out.print(labirint[i][j]);
  64. System.out.println();
  65. }
  66. }
  67.  
  68. public static void main(String[] args) {
  69. char[][] labirint = {
  70. {'#','#','#','#','#','#','#','#','#'},
  71. {'#',' ',' ',' ',' ',' ','#',' ','#'},
  72. {'#',' ','#','#','#',' ','#',' ','#'},
  73. {'#',' ','#','#','#',' ','#',' ','#'},
  74. {'#',' ',' ',' ','#','#','#',' ','#'},
  75. {'#',' ','#',' ','#',' ',' ',' ','#'},
  76. {'#',' ','#',' ',' ',' ','#',' ','#'},
  77. {'#',' ','#','#','#','#','#',' ','#'},
  78. {'#',' ',' ',' ','#',' ',' ','C','#'},
  79. {'#','#','#','#','#','#','#','#','#'}};
  80.  
  81. System.out.println("Izgled labirinta:");
  82. izpis(labirint);
  83.  
  84. System.out.println("\nNajdena pot skozi labirint:");
  85. // poiščimo izhod iz labirinta - izhodiščni položaj je na koordinati (x=5,y=3)
  86. if (najdiPot(labirint, 5, 3))
  87. izpis(labirint);
  88. else
  89. System.out.println("Ne najdem poti skozi labirint!");
  90. }
  91. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:1: error: class Ideone is public, should be declared in a file named Ideone.java
public class Ideone {
       ^
1 error
stdout
Standard output is empty