based on http://www.quesucede.com/public/gameoflife/game.html