## About A c++ Linux CLI implementation of John Conway's game of life. ![Preview](docs/preview.gif) ## Features - Vim-like key bindings - Open [RLE](https://conwaylife.com/wiki/Run_Length_Encoded) files - Change generation speed - Generation stepping - Pause & unpause ## Usage #### Key bindings (normal mode) `h`, `j`, `k` & `l` to move left, down, up & right, respectively. `q` to quit. `i` to insert a cell. `x` to delete a cell. `p` to pause and unpause. `s` to step a generation. `+` & `-` to to increment & decrement the generation speed, respectively. `:` to enter command mode. #### Commands Commands that can be run in command mode. `open (PATH)` to open a [RLE](https://conwaylife.com/wiki/Run_Length_Encoded) file. ## Todo - Dynamic terminal window size. Redraw everything when the window size changes ## Good to have links [Original Scientific American article](https://web.stanford.edu/class/sts145/Library/life.pdf) [John Conway's Game of Life](https://playgameoflife.com) [ANSI escape sequences](https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797) [fmt](https://github.com/fmtlib/fmt)