How huytothevoz/ai_midterm works
This is an educational Sokoban AI project: a command-line menu exposes single-agent solving, search benchmarks and heuristic checks, plus competitive agents and graphical play. The main workflow is user → menu → selected runner or UI → game model/search or agents → displayed solution, score or verification results. Separate branches cover single-agent mechanics, evaluation, competitive play and interfaces. Relationships are limited to calls or dependencies visible in the supplied excerpts, SOURCE INDEX, or explicit code references; unsampled implementation details are not inferred.
Main entry points: main.py CLI Entrypoint · game_logic_competitive.py Competitive Rules · game_logic.py Single-Agent Rules · agent_utils.py Agent Search Helpers
Components 16
Single-Agent Sokoban
- Single-Agent Rules
Ex1/game_logic.py - UCS and A*
Ex2/search_algorithms.py
Search Evaluation
- Search Benchmarks
Ex3/experiments.py - Heuristic Verification
Ex4/verify_heuristic.py - Verification Results
Ex4/heuristic_verification.csv
Competitive Play
- Competitive Rules
Ex6/game_logic_competitive.py - Agent 1 GBFS
Ex7/agent1.py - Agent 2 A*
Ex7/agent2.py - Agent Search Helpers
Ex7/agent_utils.py - Match Runner
Ex7/run_competitive.py
User Interfaces
- Visual Menu
menu_ui.py - Single-Agent GUI
Ex5/sokoban_ui.py - Shared UI Components
Ex5/ui_components.py - Competitive GUI
Ex8/competitive_ui.py
Application Control
- CLI Entrypoint
main.py
Other components
- User
Connections 33
- User → CLI Entrypoint: selects feature
main.py - CLI Entrypoint → Visual Menu: opens menu
main.py - CLI Entrypoint → Single-Agent Rules: runs requirement
main.py - CLI Entrypoint → UCS and A*: runs requirement
main.py - CLI Entrypoint → Search Benchmarks: runs benchmark
main.py - CLI Entrypoint → Heuristic Verification: runs verification
main.py - CLI Entrypoint → Single-Agent GUI: opens GUI
main.py - CLI Entrypoint → Competitive Rules: runs demo
main.py - CLI Entrypoint → Match Runner: runs match
main.py - CLI Entrypoint → Competitive GUI: opens GUI
main.py - Visual Menu → Single-Agent GUI: opens GUI
menu_ui.py - Visual Menu → Competitive GUI: opens GUI
menu_ui.py - Search Benchmarks → Single-Agent Rules: creates game
Ex3/experiments.py - Search Benchmarks → UCS and A*: runs searches
Ex3/experiments.py - Heuristic Verification → Single-Agent Rules: enumerates states
Ex4/verify_heuristic.py - Heuristic Verification → UCS and A*: checks heuristic
Ex4/verify_heuristic.py - Heuristic Verification → Verification Results: writes results
Ex4/verify_heuristic.py - Single-Agent GUI → Single-Agent Rules: creates game
Ex5/sokoban_ui.py - Single-Agent GUI → UCS and A*: runs solver
Ex5/sokoban_ui.py - Single-Agent GUI → Shared UI Components: extends base
Ex5/sokoban_ui.py - Competitive Rules → Single-Agent Rules: reuses helpers
Ex6/game_logic_competitive.py - Agent 1 GBFS → Competitive Rules: simulates moves
Ex7/agent1.py - Agent 1 GBFS → Agent Search Helpers: uses helpers
Ex7/agent1.py - Agent 2 A* → Competitive Rules: simulates moves
Ex7/agent2.py - Agent 2 A* → Agent Search Helpers: uses helpers
Ex7/agent2.py - Agent Search Helpers → Competitive Rules: simulates actions
Ex7/agent_utils.py - Agent Search Helpers → Single-Agent Rules: uses directions
Ex7/agent_utils.py - Agent Search Helpers → UCS and A*: uses distance helper
Ex7/agent_utils.py - Match Runner → Competitive Rules: creates game
Ex7/run_competitive.py - Match Runner → Agent 1 GBFS: requests action
Ex7/run_competitive.py - Match Runner → Agent 2 A*: requests action
Ex7/run_competitive.py - Competitive GUI → Competitive Rules: creates game
Ex8/competitive_ui.py - Competitive GUI → Shared UI Components: extends base
Ex8/competitive_ui.py