Nur mal zu Problem b)
Man muss sich die Zustände der Autos merken, d.h. in welche Richtung er im Moment fährt und auch wie schnell. Wird nun eine Taste gedrückt ändert sich halt die Richtung.
In der Funktion (wahrscheinlich über einen Timer gesteuert) in der die Autos bewegt werden wird das Auto abhängig von der gespeicherten Geschwindigkeit um N Pixel bewegt und abhängig von der gespeicherten Richtung ändert sich halt die X oder die Y Position um die N Pixel (oder bei 45° halt X und Y um N/Wurzel(2) Pixel?
Wär auf jeden Fall eine gute Gelegenheit ein bißchen
OOP mit zu lernen.