Warum rechnest du x=x*(-1) ?

Ich würde einfach den else Zweig anpassen. Für die Drehrichtung nimmst du eine Variable. Du änderst einfach den Zustand zwischen 0 und 1.
Code:
...
...
else
{
if (drehrichtung == 0) {
robot.motors(-200, 200); drehrichtung = 1;
} else {
robot.motors(200, -200); drehrichtung = 0;
}
msleep(300);
}
Bei Rechnungsaktionen muss man aufpassen das du den Controller nicht überforderst. Ohne Rechnen ist der Controller auch schneller, da es resourcenschonender ist. Man verwenden auch wenn möglich keine Rechenaktrionen sondern Konstanten (z.B. U=2 x pi x r => U = 6,28 x r).

MfG Hannes