Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # include <stdio.h>
- # include <list>
- # define N 15
- # define M 15
- using namespace std;
- int get_first (int *i, int *j, int Matrix[N][M]) // תחילת המשחק - הערכים הם 00
- {
- if ( go_right (&i, &j, Matrix ) == 1)
- {
- return (*i)++;
- }
- if (go_down(&i, &j, Matrix) == 1)
- {
- return (*j)++;
- }
- if(go_left(&i, &j, Matrix) == 1)
- {
- return (*i)--;
- }
- if (go_up(&i, &j, Matrix) == 1)
- {
- return (*j)--;
- }
- }
- int go_right (int **i ,int **j, int matrix[N][M]) // ללכת ימינה
- {
- if ((matrix [( (**i) + 1) ] [ (**j) ] ) == 1 )
- {
- return 1;
- }
- }
- int go_down(int **i, int **j, int matrix[N][M]) // ללכת למטה
- {
- if ((matrix[(**i)] [((**j) + 1)]) == 1)
- {
- return 1;
- }
- }
- int go_left(int **i, int **j, int matrix[N][M]) // ללכת שמאלה
- {
- if ((matrix[((**i)- 1)][(**j)]) == 1)
- {
- return 1;
- }
- }
- int go_up(int **i, int **j, int matrix[N][M]) // ללכת למעלה
- {
- if ((matrix[(**i) ] [(**j)- 1]) == 1)
- {
- return 1;
- }
- }
- /*int get_0(int **i, int **j, int matrix[N][M])
- {
- //int flag = 0;
- if (matrix[((**i) + 1)][(**j)] == 1 ) //&& flag == 0) // בדיקה אם יש אפשרות ללכת ימינה
- {
- return ((**i)++);
- }
- else //(matrix[((**i) + 1)][(**j)] == 0) //
- {
- //flag = 1;
- if(matrix[(**i)][((**j)+1)] == 1) // אם לא חסום נלך למטה
- return (**j++);
- else
- if (matrix[((**i) - 1)][(**j)] == 1) // נלך שמאלה אם לא חסום
- {
- return ((**i)--);
- }
- else
- {
- if (matrix[(**i)][((**j)- 1)] == 1) // נעלה למעלה אם לא חסום
- {
- return ((**j)--);
- }
- }
- }
- };
- */
- int get_num(int *i, int *j, int num, int Matrix[N][M] )
- {
- if (go_right(&i, &j, Matrix) == 1)
- {
- return (*i)++;
- }
- if (go_down(&i, &j, Matrix) == 1)
- {
- return (*j)++;
- }
- if (go_left(&i, &j, Matrix) == 1)
- {
- return (*i)--;
- }
- if (go_up(&i, &j, Matrix) == 1)
- {
- return (*j)--;
- }
- };
- int main()
- {
- int Matrix[N][M] = {
- {1,1,1,1,1,1,1,1,1,1,0,1,1,1,1},
- {1,0,1,1,0,0,0,0,0,0,1,1,1,1,1},
- {1,0,1,0,0,1,1,1,1,1,1,1,1,1,1},
- {1,0,0,0,1,1,1,1,1,1,1,1,1,1,1},
- {1,1,1,1,0,1,1,1,0,0,0,0,0,1,1},
- {1,0,0,0,1,1,1,1,1,1,1,1,0,1,1},
- {1,0,0,1,1,1,1,1,1,1,1,1,1,1,1},
- {1,0,0,1,1,1,1,0,1,0,1,0,1,0,0},
- {1,1,1,1,0,1,1,1,1,1,1,1,1,1,1},
- {1,0,0,1,1,1,0,1,1,1,1,1,1,1,1},
- {1,0,0,1,1,0,0,1,1,1,1,0,1,1,1},
- {1,0,0,1,1,1,0,0,0,0,0,0,1,1,1},
- {1,0,0,1,1,1,1,1,1,1,1,0,1,1,1},
- {1,1,0,1,1,1,1,1,1,1,1,1,0,1,1},
- {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
- };
- int i=0, j=0, num=NULL;
- //num = Matrix[i][j];
- get_first (&i, &j, Matrix);
- while (i>=0 && i<=N)
- {
- while ( j>= 0 && j<=M)
- {
- //printf( "%d" , Matrix[i][j]);
- int num = Matrix[i][j];
- get_num(&i, &j, num, Matrix);
- if (Matrix[i][j] == Matrix[N][M]) // check if is the end
- {
- return printf("The End :) :) :) ");
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement