"The Life Game" simulation engine written in golang. Originally it was the task for a job application interview. Later it was extended with pseudo-graphic console UI, several implementations of the main calculation algorithm with different optimizations, including a multithreaded implementation and comparative performance tests.
This project is solely educational, with the purpose of demonstrating certain aspects of the Go programming language like, how to:
- Create a console application with pseudo-graphic console UI with windows and resizable layouts
- Use keyboard and mouse in the console terminal
- Process startup parameters including commands and flags
- Use goroutines to utilize all CPU cores efficiently by performing calculations simultaneously in several threads
- Use channels to synchronize goroutines
Simulation with short console output
Simulation with multithreading mode with 10 workers (2.5 times faster compared with standard mode)
Due to lack of available time to this project, there are a few unsightly, poorly formatted and potentially problematic pieces in this code. It is strongly advised not to use this code in a production environment :-)