private void processNeighbours(int Prx, int Pry) {

		

		int scanRange = 3;

		// Add this node to the closed list
		// addNodeToClosed(Prx, Pry);

		// removeItemFrom_OPEN_list(Prx, Pry);
		// addNodeToClosed(Prx, Pry);

		// start point = top left of 9
		int tl_x = Prx - 1;
		int tl_y = Pry - 1;

		
	
		
		// loops the 8 nodes (n) around the parent		
		for (int i = 0; i < scanRange; i++) {
			for (int j = 0; j < scanRange; j++) {
	
				// what is the basic cost of the move 10 or 14,
				int G_movecost = manhattan_node_move_cost(Prx, Pry,
						tl_x, tl_y);
				
				

					/*
					 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
					 */

					if ((!isItemIn_OBSTACLES_list(tl_x, tl_y)) 	&& (!isItemIn_CLOSED_list(tl_x, tl_y)) 
							&& isWithinBoundaries(tl_x, tl_y)  )
					
					{ // if its
						// NOT
						// in the
						// closed
						// list...continue

						// G; existing cost of current parent (the center of the
						// 9) 0 if none
						int G_parent = this.G_currentParent; //

						// G; existing G cost of neighbour node being scanned 0
						// if none
						int G_currentNeighbourNode = get_OPEN_list_G(tl_x, tl_y);

						

						// From current parent to node being scanned
						int G = G_parent + G_movecost;
						;// + G_currentNeighbourNode;

						// H distance from this neighbour node to the target
						int H = nodeCalc_H((tl_x), (tl_y)) * 10;

						int F = G + H;

						/*
						 * is this (n) already in the open list? Yes? Compare
						 * the G value of that (n) in the open list with the
						 * current (n) ???????????Which ever is better (lower)
						 * make that the new parent and scan the neighbours
						 */
						//

						// if neighbour is NOT in the open list, add it
						// recording Parent, F, G & H

						if (!isItemIn_OPEN_list(tl_x, tl_y)) {
							
							if(G_movecost==10){	

							addNodeToOpen(Prx, Pry, tl_x, tl_y, F, G, H);
							
							}
							

						} else { // if it IS in the open list,

							G = G_parent + G_movecost;

							if (G < G_currentNeighbourNode) {
								// if new path is better(lower) value
								// reparent that node and recalc fgh

								F = G + H;
								
								
								
								//////////
								//removeItemFrom_OPEN_list(tl_x, tl_y);
								//removeItemFrom_CLOSED_list(tl_x, tl_y);
								
								if(G_movecost==10){
								
								// update the neighbour node
								updateBetterNode(Prx, Pry, tl_x, tl_y, F, G, H);
								
								}
								
								

								String x = "";

							} else {
								// leave alone

								// addNodeToOpen(Prx, Pry, tl_x, tl_y, F,
								// G_movecost, H);

							}

							// System.out.println();

						}// end else

					}// end:is in closed

					// } // obstacles

					/*
					 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
					 */
				

				// move right
				tl_x++;

				// ++++++++++++++++++++++++
			}
			tl_y++;
			tl_x = Prx - 1;// --;//start_x = Px - cellWidth;
		}

		
		// addNodeToClosed(Prx, Pry);
		System.out.println();
		// pg.repaint();
		
		
		
		
	}