Advertisement
Guest User

Untitled

a guest
Nov 19th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1.  
  2. import java.util.*;
  3.  
  4. public class Labyrintti {
  5.  
  6. public int laske(int[][] kartta) {
  7. int maaliY = 0;
  8. int maaliX = 0;
  9. ArrayDeque<int[]> jono = new ArrayDeque<>();
  10. int[][] etaisyys = new int[kartta.length][kartta[0].length];
  11. for (int i = 1; i < kartta.length; i++) {
  12. for (int j = 1; j < kartta[0].length; j++) {
  13. if (kartta[i][j] == 3) {
  14. maaliY = i;
  15. maaliX = j;
  16. kartta[i][j] = 0;
  17. }
  18.  
  19. if (kartta[i][j] == 2) {
  20. kartta[i][j] = 4; // visited
  21. etaisyys[i][j] = 0;
  22. int[] alku = {i, j};
  23. jono.add(alku);
  24. // i = kartta.length;
  25. // j = kartta[0].length;
  26. }
  27. }
  28. }
  29.  
  30. while (!jono.isEmpty()) {
  31. int[] solmu = jono.pollFirst();
  32.  
  33. if (kartta[solmu[0] + 1][solmu[1]] == 0) {
  34. int[] naapuri1 = {solmu[0] + 1, solmu[1]};
  35. jono.add(naapuri1);
  36. kartta[solmu[0] + 1][solmu[1]] = 4;
  37. etaisyys[solmu[0] + 1][solmu[1]] = etaisyys[solmu[0]][solmu[1]] + 1;
  38. }
  39.  
  40. if (kartta[solmu[0] - 1][solmu[1]] == 0) {
  41. int[] naapuri2 = {solmu[0] - 1, solmu[1]};
  42. jono.add(naapuri2);
  43. kartta[solmu[0] - 1][solmu[1]] = 4;
  44. etaisyys[solmu[0] - 1][solmu[1]] = etaisyys[solmu[0]][solmu[1]] + 1;
  45. }
  46.  
  47. if (kartta[solmu[0]][solmu[1] + 1] == 0) {
  48. int[] naapuri3 = {solmu[0], solmu[1] + 1};
  49. jono.add(naapuri3);
  50. kartta[solmu[0]][solmu[1] + 1] = 4;
  51. etaisyys[solmu[0]][solmu[1] + 1] = etaisyys[solmu[0]][solmu[1]] + 1;
  52. }
  53.  
  54. if (kartta[solmu[0]][solmu[1] - 1] == 0) {
  55. int[] naapuri4 = {solmu[0], solmu[1] - 1};
  56. jono.add(naapuri4);
  57. kartta[solmu[0]][solmu[1] - 1] = 4;
  58. etaisyys[solmu[0]][solmu[1] - 1] = etaisyys[solmu[0]][solmu[1]] +1;
  59. }
  60. if (solmu[0] == maaliY && solmu[1] == maaliX) {
  61. return etaisyys[solmu[0]][solmu[1]];
  62. }
  63.  
  64. }
  65.  
  66. return -1;
  67. }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement