I did something like this for a first year project, it involved charged particles which obeys a similar inverse square as gravity does for determining position. You basically had a fixed set of charges, that users could toggle to be between {-8,-4,-2,-1,0,1,2,4,8} * K, then you'd hit start and you'd try to get the puck to go to the goal (It was very much based on this:
http://phet.colorado.edu/en/simulation/electric-hockey).
It involved basically looking at
F_x (the force applied in the x direction, from every other point).
F_y (the force applied in the y direction, from every other point).
When you sum these up you get an instantaneous picture of the scene, that is you know it's position, and you know the forces acting upon it. Then I believe I used a technique called Runge-Kutta which gets me a prediction, of where it would be in a small time slice, (say 1/20th of a second), so I moved the particle there and repeat (This was all done in Java AWT I believe). All in all it was fairly straight forward, and gave the user the experience I think you are looking for.