hrshtv / Cellular-Automatons

A few cellular automatons implemented in C++ with an interactive GUI made using FLTK

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cellular Automatons

Contains implementations of Brian's Brain, Conway's Game of Life, and Wireworld.

Usage:

cd src
bash run.sh <filename>

Documentation:

src/

  • Helpers.h : Contains a few trivial helper functions
  • cells/
    • Cell.h : Abstract class that describes the nature of a cell in a cellular automaton
    • BrianCell.h : Implementation of the cell described in Brian's Brain
    • ConwayCell.h : Implementation of the cell described in Conway's Game of Life
    • WireworldCell.h : Implementation of cell described in Wireworld
  • configs/
    • Config.h : Abstract class that stores a particular configuration of the world
    • Circuit.h : Stores the state information for the circuit shown in the demos/wireworld.gif
    • Gosper.h : Stores the state information for Gosper glider gun
  • main_bb.cpp : Main script for Brian's Brain
  • main_cgol.cpp : Main script for Conway's Game of Life
  • main_ww.cpp : Main script for Wireworld
  • run.sh : Compiles and runs a FLTK program
  • worlds/
    • BrianWorld.h : Implementation of Brian's Brain
    • ConwayWorld.h : Implementation of the Conway's Game of Life
    • WireworldWorld.h : Implementation of Wireworld

(This was done as a lab assignment for CS154: Abstractions and Paradigms for Programming Lab, Spring 2021, IIT Bombay)

About

A few cellular automatons implemented in C++ with an interactive GUI made using FLTK

License:MIT License


Languages

Language:C++ 98.7%Language:Shell 1.3%