Write a Java program to implement the Game of Life, as defined by John Conway: Any live
Question:
Write a Java program to implement the Game of Life, as defined by John Conway:
Any live cell with fewer than two live neighbors dies, as if caused by under-population.
Any live cell with two or three live neighbors lives on to the next generation.
Any live cell with more than three live neighbors dies, as if by overpopulation.
Any dead cell with exactly three live neighbors becomes a live cell, as if by reproduction.
Your program should use a 20 x 20 grid, and accept the initial grid configuration in a form similar to the following (this example would be for a 4 x 4 grid):
OOOO
OXXO
OXXO
OOOO
Where ‘X’ indicates and inhabited square and ‘O’ indicates an empty square. Your program should then accept an integer value indicating the number of generations to compute, and show the final configuration in the same format as the input.
THIS IS AN EXERCISE IN THREADING. USE A SEPARATE THREAD FOR EACH SQUARE IN YOUR GRID!