stop racers when battery dead

This commit is contained in:
Luke Meyers 2020-02-08 16:18:25 -08:00
parent a62363bcbc
commit b9dd5326f6
2 changed files with 12 additions and 4 deletions

View File

@ -12,9 +12,11 @@ func UpdateState(s State, sOld State) State {
} }
for _, t := range s.Teams { for _, t := range s.Teams {
if r := ActiveRacer(t); r != nil && won(*r, s) { if r := ActiveRacer(t); r != nil {
log.Printf("team %d won", t.id) if won(*r, s) {
s.GameOver = true log.Printf("team %d won", t.id)
s.GameOver = true
}
} }
} }
@ -209,5 +211,5 @@ const (
numRacers = 3 numRacers = 3
NumTeams = 8 NumTeams = 8
NumLanes = NumTeams NumLanes = NumTeams
baseCharge = 4 baseCharge = 10
) )

View File

@ -25,6 +25,12 @@ func accelerate(r Racer) Racer {
} }
func moveRacer(s State, r Racer) State { func moveRacer(s State, r Racer) State {
r.Battery.Charge--
s = updateRacer(s, r)
if r.Battery.Charge <= 0 {
return destroyRacer(s, r)
}
for i := 0; i < r.Kinetics.V; i++ { for i := 0; i < r.Kinetics.V; i++ {
if o := collide(r.Position.Pos+1, r.Position.Lane, s); o != nil { if o := collide(r.Position.Pos+1, r.Position.Lane, s); o != nil {
return destroyRacer(s, r) return destroyRacer(s, r)