#!/usr/bin/env python3 """Debug empty paths issue""" import mcrfpy import sys print("Debugging empty paths...") # Create scene and grid mcrfpy.createScene("debug") grid = mcrfpy.Grid(grid_x=10, grid_y=10) # Initialize grid - all walkable print("\nInitializing grid...") for y in range(10): for x in range(10): grid.at(x, y).walkable = True # Test simple path print("\nTest 1: Simple path from (0,0) to (5,5)") path = grid.compute_astar_path(0, 0, 5, 5) print(f" A* path: {path}") print(f" Path length: {len(path)}") # Test with Dijkstra print("\nTest 2: Same path with Dijkstra") grid.compute_dijkstra(0, 0) dpath = grid.get_dijkstra_path(5, 5) print(f" Dijkstra path: {dpath}") print(f" Path length: {len(dpath)}") # Check if grid is properly initialized print("\nTest 3: Checking grid cells") for y in range(3): for x in range(3): cell = grid.at(x, y) print(f" Cell ({x},{y}): walkable={cell.walkable}") # Test with walls print("\nTest 4: Path with wall") grid.at(2, 2).walkable = False grid.at(3, 2).walkable = False grid.at(4, 2).walkable = False print(" Added wall at y=2, x=2,3,4") path2 = grid.compute_astar_path(0, 0, 5, 5) print(f" A* path with wall: {path2}") print(f" Path length: {len(path2)}") # Test invalid paths print("\nTest 5: Path to blocked cell") grid.at(9, 9).walkable = False path3 = grid.compute_astar_path(0, 0, 9, 9) print(f" Path to blocked cell: {path3}") # Check TCOD map sync print("\nTest 6: Verify TCOD map is synced") # Try to force a sync print(" Checking if syncTCODMap exists...") if hasattr(grid, 'sync_tcod_map'): print(" Calling sync_tcod_map()") grid.sync_tcod_map() else: print(" No sync_tcod_map method found") # Try path again print("\nTest 7: Path after potential sync") path4 = grid.compute_astar_path(0, 0, 5, 5) print(f" A* path: {path4}") def timer_cb(dt): sys.exit(0) # Quick UI setup ui = mcrfpy.sceneUI("debug") ui.append(grid) mcrfpy.setScene("debug") mcrfpy.setTimer("exit", timer_cb, 100) print("\nStarting timer...")