A more colourful take on Conway's Game of Life.
To start, run the Main.java class.
This project has two versions. Version A was coded before knowing the requirements of Version B. This was a way to encourage decoupling the code and make it as easy as possible to make changes to its classes in the future.
The end result was, from my perspective, a well-designed program that takes full advantage of OOP practices.