Conway's Game of Life Project

Your mission is to write a program that presents Conway's Game of Life. There are loads of examples of how this can be achieved on the Internet. However, looking up the results and copying them (or even roughly copying them) is not a particularly productive learning experience. If you get really, really, REALLY stuck or, if you have finished, I have no objection to your looking at a solution as long as you don't copy it.

Really, really, REALLY stuck means the following (in this order):

  1. You are personally stuck.
  2. Your group is collectively stuck.
  3. You have given a real effort to talk to other groups, and yet you and your group are stuck.
  4. You have asked me for help, and yet you are completely stuck.
  5. You have tried to write a program, rather than writing nothing, hoping that some superhero will come to your aid.

In other words, you need to demonstrate some serious, participatory effort. Being passive for a couple of days and then asking for help won't cut it with me. If you were working in "the real world", you would be expected to do your best before you escalate your problem to management. I expect the same.

To get you started, here are three files that should help:

  • Main.java
  • Cell.java
  • Display.java

    Another thing I will be looking for is adhering to the functional specification of the problem, based both on the rules of the game and the problems, below. While writing programs is a creative endeavor, if you are a consultant or employee asks you to perform a specific task, if you wish to deviate, you will need to get permission from the person who pays you. For the purposes of this problem, I, as the teacher, am the permission-giver.

    The rules for Conway's Game of Life can be seen at this link.

    1. Write your own Conway's Game of Life simulator in the form of a Java applet or application. The grid size should specifically be 100 by 80. It should have a population editor so that the user can decide which cells should be occupied at the start of the simulation. It should have a Start button which begins an automated simulation. It should have a Pause button which halts the simulation. It should have a Clear button which leaves all of the squares empty. It should have a Step button which performs one iteration of the game. (Optional: You could also provide a Quit button that exits the simulation.)
    2. Modify your program so that cell testing wraps around. You are given that the coordinates of the squares will range from (0,0) to (99,79). If you are considering square (0,0) for your first iteration, it's neighbors will not simply be (0,1), (1,0), and (1,1). They will now also include (99,0), (99,1), (0,79), (1, 79) and (99,79).