Class: Intro to Programming II (CS 132)
Term: Spring 2005
Status: Complete
Application Type: Simulation
Language: Java
Partner: Patrick Foy
Conway's Game of Life is one of the most well-known examples of cellular automata, which are simulations of living cells that exhibit complex behavior based on simple rules. Our version is fairly simple compared to some of the other simulators out there, but it had some handy features: you can save boards and edit them in real-time, you can display cell age and statistics, and you can dynamically change the rules.
Since this class was my first exposure to the Java programming language, I had a lot to learn while working on this project. Most of the programming we'd done before invovlved very simple GUI implementation, but this project required a lot more, including Timer threads for the animation, complex layout for the preferences pane, and file I/O beyond writing mere text.
If I could work on this project again, I'd let my partner do more work. I was the de facto project leader, and I had so much fun with it that I sometimes forgot it was a team project. With the knowledge I have now, I would also be able to use the Java API more effectively, because we had to re-invent the wheel for some of the functionality (for example, I did not know about the JScrollPane class, so we wrote our own).
The simulation in progress. Darker cells have been 'alive' (meaning they haven't change state) longer.
java -jar life.jar
, although double-clicking the jar file should work as well.