Advertisement
Guest User

Untitled

a guest
Nov 21st, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<iostream>
  3. using namespace std;
  4. int count=0;
  5. int lucas(int n)
  6. {
  7. if(n == 0)
  8. return 2;
  9. if(n == 1)
  10. return 1;
  11.  
  12. return lucas(n-1) + lucas(n-2);
  13. }
  14. bool sciezka(const char* lab, int x, int y, int maxX, int maxY)
  15. {
  16.  
  17. count ++;
  18.  
  19. if ( x > maxX || x < 0|| y > maxY || y < 0) { return false; } //granice labiryntu
  20. if (lab[x][y] == 2){ return false; }; //backtracking
  21. if (x==0&&y==0) {return true;}; //znalezienie wyjscia
  22. if (lab[x][y]==2 || lab[x][y]==0) {return false;}//kolejnosc jest wazna
  23. lab[x][y] = 2; // oznaczenie drogi
  24.  
  25. if (sciezka(lab, x+1,y, maxX, maxY)==true)
  26. {
  27. return true;
  28. }
  29. if(sciezka(lab, x-1,y, maxX, maxY)==true)
  30. {
  31. return true;
  32. }
  33. if(sciezka(lab, x,y+1, maxX, maxY)==true)
  34. {
  35. return true;
  36. }
  37. if(sciezka(lab, x,y-1, maxX, maxY)==true)
  38. {
  39. return true;
  40. } //implementacja pseudokodu
  41. return false;
  42. }
  43. int main()
  44. {
  45. char* lab;
  46. std::ifstream file("tab.txt", std::ifstream::in);
  47. if(!file.is_open())
  48. file.open();
  49. int x, y;
  50. file >> x >> y;
  51. lab = new char[x][y]();
  52. for(int i = 0; i < x; i++)
  53. {
  54. for(int j = 0; j < y; j++)
  55. {
  56. file >> lab[i][j];
  57. }
  58. }
  59.  
  60. if(sciezka(lab, x-1,y-1, x, y) == true)
  61.  
  62. { cout << "udalo sie " << endl; };
  63.  
  64. for (int i = 0; i < x; ++i)
  65. {
  66. for (int j = 0; j < y; ++j)
  67. cout << +lab[i][j] << " "; //+dla wynikow liczbowych
  68. cout << "\n";
  69. }
  70.  
  71.  
  72. cout << count;
  73. getchar();
  74.  
  75.  
  76. delete[] lab;
  77.  
  78. return 0;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement