No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Christian F. Coors b788080355 Small fix in README.md 3 years ago
arch-pkgbuild Version 0.3 3 years ago
examples Added support for reading rules from RLE files 3 years ago
src Style fix 3 years ago
tools Added some Unit Tests 3 years ago
.gitignore Added Scripts for Windows x86 and x64 3 years ago
CMakeLists.txt Added support for non-square grids 3 years ago
LICENSE Initial commit v0.1 3 years ago
README.md Small fix in README.md 3 years ago

README.md

Game of Life

Introduction

This is a simple Game of Life implementation in C++14.

Features

  • 2D grid
  • Any possible rule can be selected (Stay Alive/Born)
  • Needs only C++ Standard library
  • Multithreaded (up to 32 threads)
    • Only useful for large grids (height > 1000)
  • Supported loading file formats:
    • Run Length Encoded (.rle)
    • Plaintext (.cells)
    • Life 1.06 (.lif or .life) files
  • Supported saving file formats:
    • Plaintext (.cells)

Requirements

Build

  • CMake (3.1 or later)
  • C++14 compiler (g++ 5.3.0, clang++ 3.7.1 tested)

Build instructions

Generic

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make

Arch Linux

cd arch-pkgbuild
makepkg
sudo pacman -U game_of_life-git-X

Replace X with the actual version number, architecture and file extension.

Linux crosscompile for Windows

cd tools
./build_windows_static_x{86,64}.sh

Development

This project relies on several optimizations done by modern compilers and linkers like return value optimization (RVO) and improvements in C++ like move semantics. Therefore, things like return-by-value are used in most cases to improve readability.