Create a Java application that simulates a minimum of 3 spheres moving through a frictionless environment with gravity. The environment should be a confined cube area for the spheres to collide and respond to collisions. The application must display the positions of the spheres in real time. In addition, the 3D vector position of each sphere should be saved once every second for future plotting and simulation replay. The initial position and velocity for each sphere should be random, but constrained, each time the application is run. The camera should be positioned to see the entire cube environment, but it does not have to be adjustable by the user.? Building on this, you expand the environment to include at least four cubes joined together (in a pattern other than just a larger cube). The direction of gravity should change to a new random direction every 5-10 seconds. The replay file should now include information on the position and velocity of each sphere, as well as the current direction of gravity. The camera should initially be positioned to see the entire environment, as before, but the user should now also be able to move it and rotate the viewing direction.??
What to submit:??
* All the source code for your game.?
* A compiled JAR or executable file.?
* Test suite data and description along with the results for the test.?
* A text file briefly describing how to run and play your game.??
This can be done in C# if that is easier.