So, self, you're asking the user to draw the entire board? That doesn't scale. Maybe you could have a function to create an empty board of size NxM, and another function to insert a sub-board (such as a 3x3 glider) at a specified position?