|
36 | 36 | } |
37 | 37 |
|
38 | 38 |
|
39 | | -def main(filename_map: str = MAP_FILE, filename_out: str = OUT_FILE, weight_randomization: float = 0): |
| 39 | +def main( |
| 40 | + filename_map: str = MAP_FILE, filename_out: str = OUT_FILE, |
| 41 | + weight_randomization: float = 0, diagonal_movement: bool = False, |
| 42 | +): |
40 | 43 | nodes = [] |
41 | 44 | if not Path(filename_map).exists(): |
42 | 45 | print(f'File {filename_map} does not exist.') |
@@ -66,7 +69,7 @@ def main(filename_map: str = MAP_FILE, filename_out: str = OUT_FILE, weight_rand |
66 | 69 | start = grid.node(*_start) |
67 | 70 |
|
68 | 71 | print('Finding optimal path..') |
69 | | - finder = AStarFinder(diagonal_movement=DiagonalMovement.never) |
| 72 | + finder = AStarFinder(diagonal_movement=DiagonalMovement.always if diagonal_movement else DiagonalMovement.never) |
70 | 73 | path, runs = finder.find_path(start, end, grid) |
71 | 74 |
|
72 | 75 | # print(grid.grid_str(path=path, end=end, start=start)) |
@@ -97,5 +100,9 @@ def main(filename_map: str = MAP_FILE, filename_out: str = OUT_FILE, weight_rand |
97 | 100 | help='how much randomization should be added to the tile-weights (disabled by default)', |
98 | 101 | type=float, |
99 | 102 | default=0) |
| 103 | + parser.add_argument( |
| 104 | + '-d', '--diagonal-movement', |
| 105 | + help='allow for diagonal movement', |
| 106 | + action='store_true') |
100 | 107 |
|
101 | 108 | main(**vars(parser.parse_args())) |
0 commit comments