Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- void way(int curX, int curY, int x2, int y2, int n, int m, int pathPointer, int& steps, int path[]) { //cur is short for current
- if ((curX == x2) && (curY == y2)) { return; }
- for (int i = 0; i < 4; i++) {
- switch (i){
- case 0: {
- if ((curY-1 >= 0) && (curY-1 < n)) {
- steps++; path[pathPointer++] = 0;
- way(curX, curY-1, x2, y2, n, m, pathPointer, steps, path);
- steps--; pathPointer--;
- }
- break;
- }
- case 1: {
- if ((curX+1 >= 0) && (curX+1 < m)) {
- steps++; path[pathPointer++] = 1;
- way(curX+1, curY, x2, y2, n, m, pathPointer, steps, path);
- steps--; pathPointer--;
- }
- break;
- }
- case 2: {
- if ((curY+1 >= 0) && (curY+1 < n)) {
- steps++; path[pathPointer++] = 2;
- way(curX, curY+1, x2, y2, n, m, pathPointer, steps, path);
- steps--; pathPointer--;
- }
- break;
- }
- case 3: {
- if ((curX-1 >= 0) && (curX-1 < m)) {
- steps++; path[pathPointer++] = 3;
- way(curX-1, curY, x2, y2, n, m, pathPointer, steps, path);
- steps--; pathPointer--;
- }
- break;
- }
- }
- }
- }
- int main()
- {
- int n, m, x1, y1, x2, y2, labyrinth[100][100] = {}, path[100] = {}, steps = 0;
- cout << "Enter X1 = "; cin >> x1;
- cout << "Enter Y1 = "; cin >> y1;
- cout << "Enter X2 = "; cin >> x2;
- cout << "Enter Y2 = "; cin >> y2;
- cout << "Enter N (height) = "; cin >> n;
- cout << "Enter M (length) = "; cin >> m;
- cout << "start entering the labyrinth now! 1 - blocked, 0 - free\n";
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < m; j++) {
- cin >> labyrinth[i][j];
- }
- }
- way(x1, y1, x2, y2, n, m, 0, steps, path);
- if (steps == 0) {
- cout << "No way found!";
- } else {
- for (int i = 0; i < steps; i++) {
- switch (path[i]) {
- case 0: {
- cout << "up ";
- break;
- }
- case 1: {
- cout << "right ";
- break;
- }
- case 2: {
- cout << "down ";
- break;
- }
- case 3: {
- cout << "left ";
- break;
- }
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement