Advertisement
Guest User

Untitled

a guest
Jan 21st, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. // Creating variables
  2. var myX = 5, myY = 5;
  3. var targetX = 15, targetY = 15;
  4. var s = 20, cs = 30;
  5. var grid = [], dist = [];
  6. var colors = ["green", "black"];
  7. for (let i=0; i<s; ++i){
  8. grid[i] = [];
  9. dist[i] = [];
  10. for (let j=0; j<s; ++j){
  11. grid[i][j] = 0;
  12. }
  13. }
  14.  
  15. function calcDist(){
  16. for (let i=0; i<s; ++i){
  17. for (let j=0; j<s; ++j){
  18. dist[i][j] = 0;
  19. }
  20. }
  21. dist[targetX][targetY] = 1;
  22. for (let d=1;; ++d){
  23. let flag = 0;
  24. for (let i=0; i<s; ++i){
  25. for (let j=0; j<s; ++j){
  26. if (dist[i][j] == d){
  27. if (i>0 && dist[i-1][j]==0 && grid[i-1][j]==0){dist[i-1][j]=d+1; flag=1;}
  28. if (i<s-1 && dist[i+1][j]==0 && grid[i+1][j]==0){dist[i+1][j]=d+1; flag=1;}
  29. if (j>0 && dist[i][j-1]==0 && grid[i][j-1]==0){dist[i][j-1]=d+1; flag=1;}
  30. if (j<s-1 && dist[i][j+1]==0 && grid[i][j+1]==0){dist[i][j+1]=d+1; flag=1;}
  31. }
  32. }
  33. }
  34. if (!flag){break;}
  35. }
  36. }
  37.  
  38. function update() {
  39. }
  40.  
  41. function draw() {
  42. for (let i=0; i<s; ++i){
  43. for (let j=0; j<s; ++j){
  44. context.fillStyle = colors[grid[i][j]];
  45. context.fillRect(i*cs, j*cs, cs-1, cs-1);
  46. }
  47. }
  48. context.fillStyle = "red";
  49. context.fillRect(myX*cs, myY*cs, cs-1, cs-1);
  50. context.fillStyle = "blue";
  51. context.fillRect(targetX*cs, targetY*cs, cs-1, cs-1);
  52. };
  53.  
  54. function keyup(key) {
  55. if (key == 32){
  56. calcDist();
  57. if(dist[myX][myY]==0){console.log("no path");}
  58. else{
  59. if (myX>0 && dist[myX-1][myY] == dist[myX][myY]-1){--myX;}
  60. else if (myX<s-1 && dist[myX+1][myY] == dist[myX][myY]-1){++myX;}
  61. else if (myY>0 && dist[myX][myY-1] == dist[myX][myY]-1){--myY;}
  62. else if (myY<s-1 && dist[myX][myY+1] == dist[myX][myY]-1){++myY;}
  63. }
  64. }
  65. };
  66.  
  67. function mouseup() {
  68. let i = Math.floor(mouseX/cs);
  69. let j = Math.floor(mouseY/cs);
  70. grid[i][j] = 1 - grid[i][j];
  71. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement