This project is a Java implementation of Conway's Game of Life, a cellular automaton devised by the mathematician John Conway.
Overview
The application provides a full-screen render of the cellular grid, dynamically scaling cells to fill the screen. An overlay interface displays real-time statistics, including cell count, living cell count, and cell clusters, as the generations progress over time.
Features
- Full-screen dynamic cell rendering
- Real-time statistics overlay
- Adjustable grid size and cell attributes
- Step-through generations
Screenshot
- Launch the application.
- The grid will dynamically adjust to fill the screen.
- View real-time statistics in the overlay.
Concepts
Conway's Game of Life follows a set of simple rules that determine the state of each cell in the grid based on its neighbors. The rules are:
- Any live cell with fewer than two live neighbours dies (underpopulation).
- Any live cell with two or three live neighbours lives on to the next generation.
- Any live cell with more than three live neighbours dies (overpopulation).
- Any dead cell with exactly three live neighbours becomes a live cell (reproduction).
The game is an example of a zero-player game, meaning that its evolution is determined by its initial state, requiring no further input. The Game of Life is Turing complete and can simulate a universal constructor or any other Turing machine.
For more detailed information, you can visit the Wikipedia page.
Customization
You can modify the cell attributes in the CustomCellsGrid
Java file:
package com.mycompany.conwaysgameoflife2;
// Cell size
private final int Size = 10;
Note: reducing cell size increases the number of cells on display at the cost of performance