You don't tell a car where to go. It goes anyway due to its velocity. By looking ahead (where will it be a few timesteps from now, and is there still a road?) you can see whether you need to adjust the velocity.
And a road isn't an array; it's a matrix or bitmap. You can't go all that fast in the corner or you'll fly from the road.
It's always a good idea to clearly formulate the goals and scope first. In this case, you would be thinking about the extent of the modeling (the physics involved) and the complexity of the car movements (collisions, following bend roads, and so on).
I find that if you can state your concept clearly in plain English (or Dutch in my case), writing the code becomes much easier, almost trivial sometimes.
EDIT
For clarity, when I'm talking about velocity I'm talking about a vector, which has both magnitude (10MPH) and direction. Your vectors would have 2 elements, x and y, unless you also want airplanes, or want to model hills and such (you don't want hills 'cause you'd also have to take gravity into account:) where a z position and velocity are used.