feat(ModularBot): pluggable bot with 4 guns, phantom meteor movement, radar harness

- Gun harness: virtual bullet tracker, rolling fitness, auto-selector
- Guns: head-on, linear (extrapolation), circular (integrated formula), tsetlin machine (learning)
- Movement: phantom meteor gravity engine (danger histograms, phantom bullets, fire detection)
- Radar: harness + radar_lock adapter
- Color-coded modules: turret/bullet color per gun, body per movement, scan per radar
- Beats Target, SpinBot, Crazy, TrackFire in 10-round battles
This commit is contained in:
2026-09-20 00:37:10 +02:00
parent c9191b7afb
commit 254c7dc997
39 changed files with 2630 additions and 30 deletions
+18
View File
@@ -0,0 +1,18 @@
## RadarLock adapter — wraps radar_lock.doRadar() as a RadarModule.
import std/math
import ../radar_harness/radar_interface
import ../radar_lock/radar_lock as radar_lock_impl
export radar_interface
type RadarLockModule* = object
proc computeScan*(m: RadarLockModule, state: WorldState): float =
## Returns radar turn rate (deg/tick) to lock onto enemy.
let enemyBearing = arctan2(state.enemyY - state.selfY,
state.enemyX - state.selfX).radToDeg
radar_lock_impl.doRadar(state.selfRadarHeading, enemyBearing)
proc init*(m: var RadarLockModule) =
radar_lock_impl.init()