Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.93 KB | None | 0 0
  1. # include <stdio.h>
  2. # include <list>
  3. # define N 15
  4. # define M 15
  5. using namespace std;
  6.  
  7. int get_first (int *i, int *j, int Matrix[N][M]) // תחילת המשחק - הערכים הם 00
  8. {
  9. if ( go_right (&i, &j, Matrix ) == 1)
  10. {
  11. return (*i)++;
  12. }
  13. if (go_down(&i, &j, Matrix) == 1)
  14. {
  15. return (*j)++;
  16. }
  17. if(go_left(&i, &j, Matrix) == 1)
  18. {
  19. return (*i)--;
  20. }
  21. if (go_up(&i, &j, Matrix) == 1)
  22. {
  23. return (*j)--;
  24. }
  25. }
  26.  
  27. int go_right (int **i ,int **j, int matrix[N][M]) // ללכת ימינה
  28. {
  29. if ((matrix [( (**i) + 1) ] [ (**j) ] ) == 1 )
  30. {
  31. return 1;
  32. }
  33. }
  34.  
  35. int go_down(int **i, int **j, int matrix[N][M]) // ללכת למטה
  36. {
  37. if ((matrix[(**i)] [((**j) + 1)]) == 1)
  38. {
  39. return 1;
  40. }
  41. }
  42. int go_left(int **i, int **j, int matrix[N][M]) // ללכת שמאלה
  43. {
  44. if ((matrix[((**i)- 1)][(**j)]) == 1)
  45. {
  46. return 1;
  47. }
  48. }
  49. int go_up(int **i, int **j, int matrix[N][M]) // ללכת למעלה
  50. {
  51. if ((matrix[(**i) ] [(**j)- 1]) == 1)
  52. {
  53. return 1;
  54. }
  55. }
  56.  
  57. /*int get_0(int **i, int **j, int matrix[N][M])
  58. {
  59. //int flag = 0;
  60. if (matrix[((**i) + 1)][(**j)] == 1 ) //&& flag == 0) // בדיקה אם יש אפשרות ללכת ימינה
  61. {
  62. return ((**i)++);
  63. }
  64. else //(matrix[((**i) + 1)][(**j)] == 0) //
  65. {
  66. //flag = 1;
  67. if(matrix[(**i)][((**j)+1)] == 1) // אם לא חסום נלך למטה
  68. return (**j++);
  69. else
  70. if (matrix[((**i) - 1)][(**j)] == 1) // נלך שמאלה אם לא חסום
  71. {
  72. return ((**i)--);
  73. }
  74. else
  75. {
  76. if (matrix[(**i)][((**j)- 1)] == 1) // נעלה למעלה אם לא חסום
  77. {
  78. return ((**j)--);
  79. }
  80. }
  81. }
  82. };
  83. */
  84. int get_num(int *i, int *j, int num, int Matrix[N][M] )
  85. {
  86. if (go_right(&i, &j, Matrix) == 1)
  87. {
  88. return (*i)++;
  89. }
  90. if (go_down(&i, &j, Matrix) == 1)
  91. {
  92. return (*j)++;
  93. }
  94. if (go_left(&i, &j, Matrix) == 1)
  95. {
  96. return (*i)--;
  97. }
  98. if (go_up(&i, &j, Matrix) == 1)
  99. {
  100. return (*j)--;
  101. }
  102. };
  103.  
  104. int main()
  105. {
  106. int Matrix[N][M] = {
  107. {1,1,1,1,1,1,1,1,1,1,0,1,1,1,1},
  108. {1,0,1,1,0,0,0,0,0,0,1,1,1,1,1},
  109. {1,0,1,0,0,1,1,1,1,1,1,1,1,1,1},
  110. {1,0,0,0,1,1,1,1,1,1,1,1,1,1,1},
  111. {1,1,1,1,0,1,1,1,0,0,0,0,0,1,1},
  112. {1,0,0,0,1,1,1,1,1,1,1,1,0,1,1},
  113. {1,0,0,1,1,1,1,1,1,1,1,1,1,1,1},
  114. {1,0,0,1,1,1,1,0,1,0,1,0,1,0,0},
  115. {1,1,1,1,0,1,1,1,1,1,1,1,1,1,1},
  116. {1,0,0,1,1,1,0,1,1,1,1,1,1,1,1},
  117. {1,0,0,1,1,0,0,1,1,1,1,0,1,1,1},
  118. {1,0,0,1,1,1,0,0,0,0,0,0,1,1,1},
  119. {1,0,0,1,1,1,1,1,1,1,1,0,1,1,1},
  120. {1,1,0,1,1,1,1,1,1,1,1,1,0,1,1},
  121. {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
  122. };
  123.  
  124.  
  125. int i=0, j=0, num=NULL;
  126. //num = Matrix[i][j];
  127. get_first (&i, &j, Matrix);
  128.  
  129. while (i>=0 && i<=N)
  130. {
  131. while ( j>= 0 && j<=M)
  132. {
  133. //printf( "%d" , Matrix[i][j]);
  134. int num = Matrix[i][j];
  135. get_num(&i, &j, num, Matrix);
  136.  
  137. if (Matrix[i][j] == Matrix[N][M]) // check if is the end
  138. {
  139. return printf("The End :) :) :) ");
  140. }
  141.  
  142. }
  143. }
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151. return 0;
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement