# Simple Race KoTH

## Rate control

```
{
"Rate control": function(distanceTravelled, energyLeft, _, s) {
if (distanceTravelled === 0) {
for (let i = 100; i > 0; --i) {
if (10000 / i > energyLeft) {
s.travelSpeed = 100 / (i + 1);
break;
}
}
}
return s.travelSpeed;
}
}
```

Each round uses up all of its energy to reach the finish line. Strictly better than "Slow and steady" as this entry will only ever use 1 or more energy per turn while also making sure to always make it to the end. Unoptimized, but still fairly fast.

## Slow and steady

```
{
"Slow and steady": function() {
return 1;
}
}
```

Baseline bot while I try to figure out what to do with this challenge. Doesn't adapt at all so it might start consistently losing if some sort of meta develops.

### Robin Hood

```
{
"Robin Hood": function(dist, energy, bots, storage) {
if (!dist)
storage.move = [
[100, 1],
[200, Math.sqrt(192 / 49) - 0.00695],
[10000 / 49, (100 / 49)]
].sort((a, b) => Math.abs(a[0] - energy) - Math.abs(b[0] - energy))[0][1];
return storage.move;
}
}
```

This bot will do one of three things in a race:

**Move one unit per turn:**This is done in the first race of each game to ensure it has the full 200 energy it needs**Move slightly slower than two units per turn:**This is done every other turn and saves just enough energy to allow it to...**Move slightly faster than two units per turn:**This lets it finish one turn faster than the current competitors, and just barely undercuts a few of the previous winners (though Rate control is ahead by a hundredth of a point as of posting)