This assignment is less about you writing code and more about you getting used to Java, the IDE, and figuring out what you are going to do for the project. As with all of the assignments, there are actually two distinct due dates. On the first one you will turn in your design documents and on the second one you will submit the code itself. In this assignment, the code is very short and simple.
Design
The more significant aspect of this assignment is for you to get familiar with the Eclipse environment and think about what you want your game to look like. This will be done mostly by the time you submit your design. Your design will include a written description of the game that you intend to write for this project in the javadoc comment above your main class. That way it will be included in the documentation generated by Eclipse. This document will not set in stone exactly what you will do. It is very possible for you to change your mind some over the course of the semester, but the further you go, the harder that will become.
The written design document needs to specify several things. First it needs to give a general description of the game and roughly how the user will play it. You will then flesh out some of how you will do this by specifying what types of subclasses to the main interfaces you will create. In particular, you need to say what the subclasses of the Block and GameEntity interfaces will be, and how the player will interact with each of them in your implementation.
The entire design can be "submitted" to me by placing the generated files in a directory under your Local/HTML-Documents directory on Sol as described in the general project page. Then you can send me an e-mail telling me you have posted it.
Code
The code for this project is to create a class with a main method that instantiates a MainFrame object and calls its setVisible method passing a value of true. (The setVisible method is inherited from the javax.swing.JFrame class.) This will bring up the game window and allow you to play around a bit with the basic implementations of the main classes that I have provided. The constructor for MainFrame requires an argument of type GameSetup. For this assignment you should use the class BasicGameSetup which has a method in it that will help you get an instance. The MainFrame class is also a generic class that takes a block type and an entity type. For this assignment give it <BasicBlock,BasicEntity>. In the next assignment you will make your own replacements for both of those.