public walkPath(float xc, float yc, float xt, float yt, DogsMind mind) { min_x = mind.min_x; min_y = mind.min_y; max_x = mind.max_x; max_y = mind.max_y; myMind = mind; int[] node; path = new ArrayList(); open = new ArrayList(); backmapX = new int[256, 256]; backmapY = new int[256, 256]; myMind.freeGridPoint(xc, yc, out start_x, out start_y); myMind.freeGridPoint(xt, yt, out end_x, out end_y); if (start_x < min_x || start_y < min_y || end_x < min_x || end_y < min_y || start_x > max_x || start_y > max_y || end_x > max_x || end_y > max_y) { return; } if (start_x == end_x && start_y == end_y) { return; } backmapX[start_x, start_y] = start_x; backmapY[start_x, start_y] = start_y; node = new int[2] { start_x, start_y }; open.Add(node); if (buildBackMaps() == false) { return; // can't get there } buildPath(); }
public dogTask(DogsMind dm, string t_name) { task_name = t_name; // task name myMind = dm; target_objects = new ArrayList(); dm.myDog.Coordinates(out dm.myContext.start_pos_x, out dm.myContext.start_pos_y); dm.myContext.start_angle = dm.myDog.Orientation(); }