https://github.com/nivasharmaa/gameoflife
Java implementation of Conway's Game of Life showcasing skills in OOP, GUI development, and algorithmic logic. Features an interactive, customizable grid, real-time controls, generation tracking, and pattern loading. Utilizes arrays for grid management and custom libraries for rendering and file I/O operations.
https://github.com/nivasharmaa/gameoflife
arrays cellular-automata cellular-automata-algorithm custom-libraries file-io file-io-in-java gui-development interactive-simulation object-oriented-programming pattern-loading real-time-controls
Last synced: about 2 months ago
JSON representation
Java implementation of Conway's Game of Life showcasing skills in OOP, GUI development, and algorithmic logic. Features an interactive, customizable grid, real-time controls, generation tracking, and pattern loading. Utilizes arrays for grid management and custom libraries for rendering and file I/O operations.
- Host: GitHub
- URL: https://github.com/nivasharmaa/gameoflife
- Owner: nivasharmaa
- Created: 2024-07-27T03:27:58.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-29T21:24:11.000Z (almost 2 years ago)
- Last Synced: 2025-12-26T20:57:38.242Z (6 months ago)
- Topics: arrays, cellular-automata, cellular-automata-algorithm, custom-libraries, file-io, file-io-in-java, gui-development, interactive-simulation, object-oriented-programming, pattern-loading, real-time-controls
- Language: Java
- Homepage:
- Size: 54.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Game of Life
Overview:
This project is an implementation of Conway's Game of Life in Java. The Game of Life is a cellular automaton devised by the British mathematician John Horton Conway in 1970. It is a zero-player game, meaning that its evolution is determined by its initial state, requiring no further input.
Features:
• Interactive Grid: Users can create initial configurations by toggling cells on the grid.
• Start/Stop Functionality: Users can start and stop the simulation at any time.
• Customizable Grid Size: The grid size can be adjusted to explore different patterns and behaviors.
• Generation Tracking: Keeps track of the number of generations that have passed.
• Pattern Loading: Users can load predefined patterns into the grid.
Concepts Used:
• Object-Oriented Programming (OOP): The project is structured using OOP principles with classes such as Board, GameOfLife, Button, and Page.
• Graphical User Interface (GUI): The GUI is implemented using custom drawing libraries (StdDraw) to render the game grid and control buttons.
• File I/O: The project includes functionality to read initial grid configurations from text files.
• Algorithms and Data Structures: Utilizes data structures like arrays and classes for managing the grid and game logic.
Files:
• Board.java: Manages the game board and game logic.
• GameOfLife.java: Implements the main logic for the Game of Life.
• Button.java: Handles button functionalities for starting, stopping, and resetting the game.
• Page.java: Manages the layout and rendering of the game page.
• Rectangle.java, Text.java: Utilities for drawing shapes and text on the screen.
• StdDraw.java, StdIn.java, StdOut.java: Custom standard libraries for drawing and input/output operations.
• WeightedQuickUnionUF.java: Data structure for managing connected components (not directly used in Game of Life but useful for related algorithms).