Cada vez que veo algo tal que así:

void turn(float angle) {...}

algo muere dentro de mi. 

Lo normal es que las aplicaciones usen radianes para los cálculos, sin embargo hay ámbitos en los que se trabaja en grados (por ejemplo, los GPS devuelven los ángulos en grados) y siempre hay que o revisar la documentación, mirar el código o tirar de prueba y error.

Una solución es poner un comentario

/* angle in degrees */

que está muy bien, pero lo mejor de todo es que hagas lo que debes hacer:

void turn(float degrees) {...}

Gracias