<?php declare(strict_types=1);
use App\GameOfLife\Board;
use App\GameOfLife\Config\GameConfig;
use App\GameOfLife\Factory\GridFactory;
use App\GameOfLife\GameOfLife;
use App\GameOfLife\Config\LiveCell;
use App\GameOfLife\NextGenerationIgnoredEdge;
use App\GameOfLife\NextGenerationWrapAroundEdge;
require_once __DIR__ . '/vendor/autoload.php';
/*$liveCells = [
new LiveCell(1, 4),
new LiveCell(2, 3),
new LiveCell(2, 4),
];
*/
//4, 8
//$ignoredEdgesAlgorithm = new NextGenerationIgnoredEdge();
$liveCells = [
new LiveCell(0, 2),
new LiveCell(1, 3),
new LiveCell(2, 1),
new LiveCell(2, 2),
new LiveCell(2, 3),
];
$wrapAroundEdgesAlgorithm = new NextGenerationWrapAroundEdge();
$board = new Board(new GridFactory(...$liveCells), 5, 6);
$iterations = 5;
$gameConfig = new GameConfig(
$board,
$wrapAroundEdgesAlgorithm,
$iterations
);
(new GameOfLife($gameConfig))->start();
|