summaryrefslogtreecommitdiffhomepage
path: root/digital/avr/modules/path/astar/test/test_astar.c
diff options
context:
space:
mode:
authorNicolas Schodet2012-05-28 23:19:24 +0200
committerNicolas Schodet2012-05-28 23:19:24 +0200
commit2692a63cd1b58b3f6ad90cf7541b0843fd799164 (patch)
treece78ac8d0dc3f5007838821855e76863c432350b /digital/avr/modules/path/astar/test/test_astar.c
parent8c9e5fbd4ce3ac2d43182434c0ed8c646dab78c3 (diff)
digital/avr/modules/path/astar: new algorithm to evaluate many goals
Diffstat (limited to 'digital/avr/modules/path/astar/test/test_astar.c')
-rw-r--r--digital/avr/modules/path/astar/test/test_astar.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/digital/avr/modules/path/astar/test/test_astar.c b/digital/avr/modules/path/astar/test/test_astar.c
index ff1d8fb4..914fc065 100644
--- a/digital/avr/modules/path/astar/test/test_astar.c
+++ b/digital/avr/modules/path/astar/test/test_astar.c
@@ -125,6 +125,20 @@ main (int argc, const char **argv)
{
printf ("failure\n");
}
+ /* Print every nodes path weight. */
+ printf ("\n");
+ astar_dijkstra_prepare (nodes, test_width * test_height, initial, goal);
+ for (y = 0; y < test_height; y++)
+ {
+ printf ("///");
+ for (x = 0; x < test_width; x++)
+ {
+ uint16_t w = astar_dijkstra_finish
+ (nodes, test_width * test_height, y * test_width + x);
+ printf (" %5d", (int16_t) w);
+ }
+ printf ("\n");
+ }
return 0;
}
@@ -147,6 +161,8 @@ test_neighbor_callback (uint8_t node, struct astar_neighbor_t *neighbors)
y = node / test_width;
if (ASTAR_DEBUG)
printf ("neighbors %d, %d\n", x, y);
+ if (test_map[node] == 'X')
+ return 0;
int neighbors_nb = 0;
int i;
for (i = 0; i < (int) UTILS_COUNT (n); i++)