Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wykrywanie najkrótszej drogi ?
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
kawus121
Witam chcę zrobić skrypt, który wykryję najkrótszą drogę do celu i nie mogę sobie z tym poradzić, napiszę co udało mi się zrobić.

Zapis jest w systemie binarnym 01010101 gdzie 0 to jest miejsce wolne, a 1 do ominięcia!
Start to początek drogi.
szerokosc i wysokosc to ilość kratek.

Proszę o pomoc


  1. <script>
  2. var start = 37;
  3. var koniec = 88;
  4. var block='1111111111111111111111111111111111111000000001
  5. 11111111111111110000000011111111111111011101110001111111
  6. 111111101110111100111111111111110111011111000000111111111
  7. 000000011111111111111111100000000111111111100111000000001
  8. 001111111110011100000000000000000100000000000000000000000
  9. 010010000000000000000000001000000000000000000000000100000
  10. 000000000000000000010000000000000000011111001000000000000
  11. 000011111100100000000000000011111111010000000000000001111
  12. 11110100000000001000011111111010000000000000001111111101
  13. 00000000000000011111111010000000000000000001100001000010
  14. 000000000000110000100000000000000000000000011111111111111111111111111';
  15. var szerokosc = 25;
  16. var wysokosc = 25;
  17.  
  18.  
  19.  
  20. function block2(start,koniec,szerokosc,wysokosc){
  21.  
  22. var typ, typ2;
  23. if(start > koniec){
  24. typ = start-koniec;
  25. typ2 = 0;
  26. }else if( start < koniec){
  27. typ = koniec - start;
  28. typ2 = 1;
  29. }
  30.  
  31.  
  32.  
  33.  
  34. var kroki = new Array();
  35.  
  36.  
  37. var i = 0;
  38. //to do poprawy(Nie mam pojęcia jak mogę to zrobić ;/)
  39. for (n in block) {
  40.  
  41. if(n < start && block[n] == 0 && n > koniec && n != koniec){
  42. kroki[i] = new Object;
  43. kroki[i].typ = 'prawo';
  44. i++;
  45. }else if(n > start && block[n] == 0 && n < koniec && n != koniec){
  46. kroki[i] = new Object;
  47. kroki[i].typ = 'prawo';
  48. i++;
  49. }else if(n+szerokosc > start && block[n+szerokosc] == 0 && n+szerokosc <= koniec && n+szerokosc != koniec){
  50. kroki[i] = new Object;
  51. kroki[i].typ = 'gora';
  52. i++;
  53. }else if(n-szerokosc > start && block[n-szerokosc] == 0 && n-szerokosc <= koniec && n-szerokosc != koniec){
  54. kroki[i] = new Object;
  55. kroki[i].typ = 'dol';
  56. i++;
  57. }
  58.  
  59. }
  60.  
  61. for(d in kroki){
  62.  
  63. alert(kroki[d].typ);
  64. }
  65.  
  66. }
  67. block2();
  68. </script>
  69.  
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.