| 
					
				 | 
			
			
				@@ -13,28 +13,26 @@ ____ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ### Cвойства: <br><br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-> <b> int width, height; </b> - широта и высота <br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				->  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-> <b> Row <T\>  *data; </b> - массив строк данных, которые хранятся в ячейке <br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				->  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<b> int width, height; </b> - широта и высота <br>  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<b> Row <T\>  *data; </b> - массив строк данных, которые хранятся в ячейке <br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <b> Settings settings; </b> - настройки для разных типов данных (если это будет работа с картинкой) <br>  <br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ### Методы: <br><br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-> <b> Img(int width, int height) </b>- конструктор с укозанием широты и высоты <br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-> <b> Img() </b>- конструктор по умолчанию  <br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-> <b> init() </b> - инициализация картинки(данных) по широте и высоте <br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-> <b>Row <T\> operator[](int n)</b> - перегрузка оператора [] для возможности обращения к каждой строке данных<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<b> Img(int width, int height) </b>- конструктор с укозанием широты и высоты <br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<b> Img() </b>- конструктор по умолчанию  <br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<b> init() </b> - инициализация картинки(данных) по широте и высоте <br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<b>Row <T\> operator[](int n)</b> - перегрузка оператора [] для возможности обращения к каждой строке данных<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 _____ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ######  template <class T\> class Row  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Вспомогательный класс, для реализации структуры 2х мерного массива с данными 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ### Cвойства: <br><br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-> <b>int width;</b> - ширина строки<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- <b> T** pixel; </b> - ячейка с хранимыми данными<br><br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<b>int width;</b> - ширина строки<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<b> T** pixel; </b> - ячейка с хранимыми данными<br><br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ### Методы: <br><br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-> <b>Row()</b> - конструктор по умолчанию<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-> <b> Row(int width)</b> - конструктор с шириной, инициализация по ширине<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-> <b> T* operator[](int n)</b> - перегрузка оператора [] для возможности обращения к каждой ячейке данных<br>  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<b>Row()</b> - конструктор по умолчанию<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<b> Row(int width)</b> - конструктор с шириной, инициализация по ширине<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<b> T* operator[](int n)</b> - перегрузка оператора [] для возможности обращения к каждой ячейке данных<br>  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 _____ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #####  Работа с BMP 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -48,8 +46,8 @@ int b; - синий цвет<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 int a; - канал<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ### Методы: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-> конструктор (r, g, b),<br> конструктор (), <br>конструктор (r, g, b, a)<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				->  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+конструктор (r, g, b),<br> конструктор (), <br>конструктор (r, g, b, a)<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 _____ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ##### Структура settings - для прописания настроек картинки 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -77,9 +75,9 @@ _____ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ### Cвойства: что и у IMG 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ### Методы: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-> <b>void read()</b> - считывание bmp картинки<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-> <b>void write()</b> - запись bmp картинки <br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-> BMP() {} - конструктор по умолчанию; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<b>void read()</b> - считывание bmp картинки <br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<b>void write()</b> - запись bmp картинки <br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+BMP() {} - конструктор по умолчанию; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 _____ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ### Приминение: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -106,9 +104,9 @@ ___ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  <b>Node *branches[8];</b> - соседние узлы<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ### Методы: <br><br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				->  <b> void calcWeight</b> - подсчет веса узла <br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				->  <b>calcDistation(Node previos)</b> - рассчет расстояния относительно переданного предыдущего узла<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				->  <b>operator < (const Node &v2) const</b> - перегрузка операторов больше меньше, для очереди с приорететом <br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<b> void calcWeight</b> - подсчет веса узла <br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<b>calcDistation(Node previos)</b> - рассчет расстояния относительно переданного предыдущего узла<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<b>operator < (const Node &v2) const</b> - перегрузка операторов больше меньше, для очереди с приорететом <br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ____ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ###### struct fo_sort - структура для сортировки указателей на узлы дерева 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -120,9 +118,9 @@ ____ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  <b>BMP map;</b> - картина на основе которой строится граф<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  <b>Position start;</b> - позиция откуда начнется поиск<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ### Методы: <br><br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-> <b> Graph(BMP map)</b> - конструктор дерева по картинке (собирает из картинки граф)<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-> <b> calcdijkstra(Position start)</b> - рассчет расстояний до каждого узла дерева от точки start<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-> <b> drowRoad(Position end)</b> - рисует дорогу от начальной точки до точки end;<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ <b> Graph(BMP map)</b> - конструктор дерева по картинке (собирает из картинки граф)<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ <b> calcdijkstra(Position start)</b> - рассчет расстояний до каждого узла дерева от точки start<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ <b> drowRoad(Position end)</b> - рисует дорогу от начальной точки до точки end;<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ### Приминение: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -151,6 +149,6 @@ ____ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ### Результат для кривой дракона: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ### Лабиринт: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-<img src = "http://git.fl8.ru/Babycar/RoadSearcher/test29.bmp" width = '400px'> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<img src = "https://git.fl8.ru/Babycar/RoadSearcher/test29.bmp" width = '400px'> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ### Выход (зеленая линия): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-<img src = "http://git.fl8.ru/Babycar/RoadSearcher/output29.bmp" width = '400px'> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<img src = "https://git.fl8.ru/Babycar/RoadSearcher/output29.bmp" width = '400px'> 
			 |