Upload files to 'sk1a'
This commit is contained in:
		
							parent
							
								
									f4cdfce9e2
								
							
						
					
					
						commit
						9230153e87
					
				
							
								
								
									
										55
									
								
								sk1a/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								sk1a/README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,55 @@
 | 
			
		||||
//Potkan sa vie pohybovať po štvorcoch hore,dole, doprava i doľava. Bludisko je tvorené štvorcovou mriežkou rozmeru N x N. V bludisku sa nachádzajú prekážky vyznačené 'x'. Potkan pri pohybe nesmie naraziť do žiadnej prekážky.
 | 
			
		||||
//
 | 
			
		||||
//Počiatočná pozícia potkana je v ľavom hornom rohu mriežky vyznačená '*'.
 | 
			
		||||
//
 | 
			
		||||
//Vašou úlohou bude zobraziť optimálnu cestu pre potkana v bludisku. Cestu potkana vyznačte '*'.
 | 
			
		||||
//
 | 
			
		||||
//Implementujte funkciu:
 | 
			
		||||
//
 | 
			
		||||
//int solve_maze(char* maze,int size);
 | 
			
		||||
//maze je jednorozmerné pole do ktorého je uložená mriežka po riadkoch za sebou. Na začiatku poľa sa nachádza prvý riadok mriežky, za ním nasleduje druhý a tak ďalej. Spolu sa v poli maze nachádza size * size znakov.
 | 
			
		||||
//
 | 
			
		||||
//Vašou úlohou  bude modifikovať pole maze tak, aby ste v ňom vyznačili cestu z bludiska čo sa nachádza v pravom dolnom rohu bludiska.
 | 
			
		||||
//hladam najlepsiu cenu na koniec, pravy dolny roh
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#include "maze.h"
 | 
			
		||||
#include <assert.h>
 | 
			
		||||
 | 
			
		||||
int issafe(char* maze, int x, int y, int size) {
 | 
			
		||||
if ((x >= 0 && x < size) && (y >= 0 && y < size) && (maze[x * size + y] == ' ')){			
 | 
			
		||||
return 1;
 | 
			
		||||
}
 | 
			
		||||
return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int backtracking(char* maze, int x, int y, int size){							//https://www.geeksforgeeks.org/rat-in-a-maze-backtracking-2/
 | 
			
		||||
if(x == size - 1 && y == size - 1 && maze[x * size + y] == ' '){				//kontrola ci sa nachadzam na konci
 | 
			
		||||
maze[x * size + y] = '*';
 | 
			
		||||
return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
    if(issafe(maze, x, y, size) == 1) {												// znazornenie stien
 | 
			
		||||
        maze[x * size + y] = '*';
 | 
			
		||||
 | 
			
		||||
        if (backtracking(maze, x, y + 1, size) == 1) {								//pohyb doprava
 | 
			
		||||
            return 1;
 | 
			
		||||
        }
 | 
			
		||||
        if (backtracking(maze, x + 1, y, size) == 1) {								//pohyb dole
 | 
			
		||||
            return 1;
 | 
			
		||||
        }
 | 
			
		||||
        if (backtracking(maze, x - 1, y, size) == 1) {								//pohyb dol
 | 
			
		||||
		
 | 
			
		||||
            return 1;
 | 
			
		||||
        }
 | 
			
		||||
        if (backtracking(maze, x, y - 1, size) == 1) {								//pohyb hore
 | 
			
		||||
            return 1;
 | 
			
		||||
        }
 | 
			
		||||
        maze[x * size + y] = ' ';
 | 
			
		||||
    }
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int solve_maze(char* maze, int size) {
 | 
			
		||||
return backtracking(maze, 0, 0, size);											//volanie funkcie
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user