A simulation of a taxi agent that navigates a city grid map, uses search algorithms to find optimal routes, handles dynamic ride requests, and makes decisions in partially observable environments. This advanced version includes realistic city features like weather, time of day, traffic systems, and interactive elements.
- Install the required dependencies:
pip install -r requirements.txt
- Run the simulator:
python taxi_simulator.py
- ESC: Exit the simulator
- SPACE: Generate new passenger request
- A: Toggle algorithm (A* or BFS)
- W: Toggle weather conditions
- T: Toggle time cycle speed
- Mouse: Click on buttons for interactions
- City grid environment with buildings as obstacles
- A* and BFS search algorithms for path planning
- Taxi agent with different states (idle, to pickup, to dropoff)
- Partially observable environment
- Dynamic passenger requests
- Performance metrics
- Animated taxi with realistic movement and rotation
- Interactive UI buttons
- Visual effects for pickup/dropoff events
- Particle effects
- Smooth transitions and animations
- Sound effects
- Path visualization
- Semi-transparent overlays
- Day/Night Cycle: Realistic lighting changes from day to sunset to night to sunrise
- Weather System: Multiple weather conditions (clear, rain, snow, fog) with visual effects
- Traffic System: Traffic lights at intersections with changing states (green, yellow, red)
- Obstacles: Random obstacles like construction, accidents, and potholes
- Adaptive Pathfinding: Search algorithms adapt to traffic conditions and obstacles
- Mini-map: Real-time overview of the city showing taxi position, traffic, and requests
- Dynamic Lighting: Building windows light up at night, headlight effects for taxi
- Enhanced Controls: More interactive options and real-time feedback
- Traffic lights that affect taxi movement
- Temporary obstacles that block roads
- Weather that changes the visual appearance of the city
- Time of day that affects visibility and lighting
- Traffic jams and routing around blocked paths
- Modified A* and BFS algorithms that account for traffic conditions
- Calculations that include traffic lights and obstacle avoidance
- Dynamic re-routing when conditions change