Learned from http://openhome.cc/Gossip/AlgorithmGossip/LifeGame.htm