This program is based on the cellular automation game called "The Game Of Life" by mathematician John Conway. This is one of the first programs I wrote that I was proud of, even though looking back on it now, it's quite a mess! This is before I really knew how to use Java as an object oriented langauge. I should have made at least 4 or more different classes. I wrote this with no outside help (other than the rules of the game) and very little googling as a challenge. I was new to both object oriented programming and the Swing class. This was a great learning experience.
Starting with a population of "cells" in a grid, some of which are alive or dead, which cells survive into the next generation is determined by the rules of the game. The rules are as follows:
1.) Any live cell with fewer than two live neighbors dies, as if by underpopulation. 2.) Any live cell with two or three live neighbors lives on to the next generation. 3.) Any live cell with more than three live neighbors dies, as if by overpopulation. 4.) Any dead cell with exactly three live neighbors becomes a live cell, as if by reproduction.
Here is some more info: https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
Programmer and Author: Brett Bernardi February 2019