Gilgalad/movementStrategy
Gilgalad uses goto wave surfing, which I chose because it doesn't waste time recalculating large portions of the movement path every turn, however, it does most of its calculations in one turn, which means that it has trouble with skipped turns even though the average time is much less than the allowed time per turn. To make up for this, the second wave is surfed in a limited fashion. Currently, Gilgalad will take at most the twenty best points on the first wave, and then calculates the minimum danger of the stop immediately point and the final points that could be reached while stopping for the second wave.
For estimating the dangers, Gilgalad currently uses fourteen classification schemes. It uses the K Nearest Neighbors algorithm, with many of the weights based off of Diamond.
To calculate the dangers, Gilgalad uses atan (which is the integral of 1 / (x^2 + 1)). This allows precise danger calculations which are easily adapted to bullet shadows.
Gilgalad is the first robot to use variable bandwidth.
It also uses minimum risk movement when there are no waves to surf.