grid_world 2.0.0 copy "grid_world: ^2.0.0" to clipboard
grid_world: ^2.0.0 copied to clipboard

A cellular automaton library associated with a square grid. Includes Conway's Game of Life.

example/main.dart

import 'dart:io';
import 'package:grid_world/grid_world.dart';

/// Make room on terminal for ANSI painting.
void clearScreen(GridWorld w) {
  for (var i = 0; i < w.nRows + 2; i++) {
    // ignore: avoid_print
    print('');
  }
}

/// Tuple of a step count and a world.
class Tup {
  Tup(this.numSteps, this.w);
  final int numSteps;
  final GridWorld w;
}

/// Demo various Conway Game of Life patterns.
void main() {
  final str = GridStringerAnsi();
  const pause = Duration(milliseconds: 100);

  for (final tup in [
    Tup(30, ConwayEvolver.blinker),
    Tup(40, ConwayEvolver.toad),
    Tup(45, ConwayEvolver.pentaDecathlon.clockwise90()),
    Tup(60, ConwayEvolver.lightweightSpaceship.padRight(30).padBottom(1)),
    Tup(60, ConwayEvolver.glider.padRight(22).padBottom(20)),
    Tup(80, ConwayEvolver.gliderFleet()),
    Tup(100, ConwayEvolver.gunFight()),
    Tup(1000, ConwayEvolver.rPentimino.padded(30)),
  ]) {
    clearScreen(tup.w);
    for (final w in GridWorldIterable(tup.w, limit: tup.numSteps)) {
      // ignore: avoid_print
      print(str.asString(w));
      sleep(pause);
    }
  }
}
1
likes
120
pub points
0%
popularity

Publisher

verified publisherorangebike.dev

A cellular automaton library associated with a square grid. Includes Conway's Game of Life.

Repository (GitHub)
View/report issues

Documentation

API reference

License

Apache-2.0 (LICENSE)

Dependencies

tuple

More

Packages that depend on grid_world