# GameOfLife The implementation of the [Conway's Game of Life](https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life) rust package ## Installation ```bash $ cargo install terminal_game_of_life ``` ## Usage ```bash $game-of-life -i https://example.com --live-cell + $game-of-life -i /path/to/file.txt --height 35 --width 35 $game-of-life -s 1337 --delay 250 ``` Check `game-of-life --help` for usage info. ``` USAGE: game-of-life [OPTIONS] FLAGS: -h, --help Prints help information -V, --version Prints version information OPTIONS: -s, --seed Specify the seed number to use as an initial state [default: random] -i, --input Specify the path/URL for the file to use as an initial state. (used instead of seed) --width Specify the width of generated universe. [default: terminal width] --height Specify the width of generated universe. [default: terminal height] --live-cell Specify the live-cell representation [default: █] --dead-cell Specify the dead-cell representation [default: ] -d, --delay Specify the introduced delay between each generation [default: 50] ``` ## Demo [![asciicast](https://asciinema.org/a/ypprtuwwvQZXRuxZBB5XUNoic.svg)](https://asciinema.org/a/ypprtuwwvQZXRuxZBB5XUNoic) ## Development - Install rustup via `curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh` - Install rust stable version for development `rustup update` - Install rust nightly for testing via `rustup install nightly` - Clone the repo - Navigate to the rust CLI implementation `cd game-of-life/CLI/rust`. - run `cargo build` to build the crate/CLI binaries. - run `cargo run --` to run the built binaries. ## Linting Run `cargo fmt -- --check` ## Testing Run `cargo +nightly test` ## Documentation Run `cargo doc` ## Release - Update the [version](./Cargo.toml) number - Run `cargo build --release` and commit changes - Update the [CHANGELOG](./CHANGELOG.md) - Create a git tag `rust/v#{version_number}` ex: `rust/v0.1.1-pre` ## Extra information ### [Contributing](../../CONTRIBUTING.md) ### [License](../../LICENSE.md) ### [Code of Conduct](../../CODE_OF_CONDUCT.md)