if(dif > 100) dif = 100;
if(dif < 100 ) dif = -100;
Steht oben - da fehlt das Minus in der zweiten Abfrage.

Bei sowas rate ich immer: ALLE Zwischenergebnisse in einzelne Schritte aufdröseln und alles mit writeInteger ausgeben lassen! So lässt sich schnell feststellen wo es hakt.

MfG,
SlyD