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:
@@ -0,0 +1,20 @@
|
||||
## Movement harness — shared types and MovementModule concept.
|
||||
## Mirrors gun_interface.nim structure.
|
||||
|
||||
import gun_harness/gun_interface
|
||||
|
||||
export gun_interface.WorldState
|
||||
|
||||
type
|
||||
MoveCommand* = tuple[speed: float, turnRate: float]
|
||||
## speed: target speed in px/tick, clamped to ±8 by bot API
|
||||
## turnRate: body turn rate in degrees/tick
|
||||
|
||||
## MovementModule concept — any type T implementing computeMove is valid.
|
||||
template isMovementModule*(T: typedesc): bool =
|
||||
compiles(
|
||||
block:
|
||||
var m: T
|
||||
let ws = WorldState()
|
||||
let cmd: MoveCommand = m.computeMove(ws)
|
||||
)
|
||||
Reference in New Issue
Block a user