38 lines
843 B
Dart
38 lines
843 B
Dart
import 'dart:math';
|
|
|
|
import 'package:rules_of_living/src/rules/RuleSet.dart';
|
|
import 'package:rules_of_living/src/rules/CellPattern.dart';
|
|
|
|
class GameOfLife implements RuleSet {
|
|
int range = 1;
|
|
List<CellPattern> patterns = <CellPattern>[
|
|
// Two blocks, offset
|
|
// ##
|
|
// ##
|
|
CellPattern("Blinker", [
|
|
Point(0, 0),
|
|
Point(1, 0),
|
|
Point(0, 1),
|
|
Point(1, 1),
|
|
Point(2, 2),
|
|
Point(3, 2),
|
|
Point(2, 3),
|
|
Point(3, 3)
|
|
]),
|
|
// A 'gliding' Spaceship
|
|
// #
|
|
// #
|
|
// ###
|
|
CellPattern("SpaceShip", [
|
|
Point(1, 0),
|
|
Point(2, 1),
|
|
Point(2, 2),
|
|
Point(1, 2),
|
|
Point(0, 2),
|
|
])
|
|
];
|
|
|
|
bool checkSurvival(int neighbors) =>
|
|
neighbors == 2 || neighbors == 3 ? true : false;
|
|
bool checkBirth(int neighbors) => neighbors == 3 ? true : false;
|
|
}
|