Eigentlich heißt es hier ja "nur eine Frage pro Thread".
Wie hast du denn geprüft, ob das Ziel getroffen ist?
Genau das Gleiche kann man auch mit den Rändern machen. (ist Rand getroffen)
- vor dem Verschieben prüfen, ob es es drüber gehn würde und wenn ja, dann nicht verschieben
- nach dem Verschieben gucken, ob drüber und wenn ja, dann zurück vor die Grenze verschieben
Alternativ gibt es auch hilfreiche Funktionen:
Max Min