This commit adds a new UML class diagram that illustrates the parallel processing components
and their relationships within the system architecture. The diagram provides visual representation
of how different modules interact in a parallel computing environment.
- Integrate SDL2 GUI rendering into the Game class
- Update World::getSurfaceLevel to correctly identify surface height
- Improve ASSERT_EQ macro to avoid multiple evaluation of arguments
- Fix typo in main_gui.cpp include
- Update CMakeLists.txt to include Threads package
Switch from Debug to Release build configuration
Remove deprecated codecvt.h dependency
Add new Renderer class for GUI support
Implement basic game timing with program start tracking
Create main_gui.cpp for SDL2-based rendered application
Update Timer to track duration in reference variable
Add font loading and rendering capabilities
Remove debug flags from build configuration
```
Introduce health (hp) and damage handling to Robot/BaseRobot
interfaces. Add SmartBot implementation. Refactor bot mining and
movement to use new World APIs (mine, mineAllPositive,
sortPositiveValues). Simplify RandomBot, DigDeepBot, and SortBot
logic, rename/overhaul World rearrange/display, and fix several
indexing/logic bugs and minor cleanups.
Update World API and implementation:
rename size fields to sizeX_/sizeY_/sizeZ_, add helpers such as
mineAllPositive, positiveAverage, topPositiveSum and a sort helper,
and fix related surface/mine semantics for dynamic columns.
Add comprehensive unit tests in tests/test_all.cpp
Refactor CMakeLists: set C++17 and CMAKE_CXX_STANDARD_REQUIRED,
introduce a SOURCES list used by executables, add a
deep_miner_tests target, and set cmake_minimum_required to 3.15
Move UML PDF to doc/ and update .gitignore. Normalize includes,
whitespace and function signatures across headers/sources and add
concise class/function documentation. Fix RandomBot so the mine
limit is computed once and simplify DigDeepBot/SortBot mining logic.
Tidy World/Game initialization, error handling, and minor const/var
clarifications for readability and correctness
Add uml_diagram.pdf and a .gitignore entry to ignore the TeX source.
Remove unused <atomic> include, shorten the console separator, and add
a comment describing default player position values in World::display.
Make World::checkEffects non-const and provide its implementation.
Add RandomBot implementation and declare a private randomNumber helper.
Add a simple main() entrypoint.