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.
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.