X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=001%2Fsrc%2Flife_god.erl;h=ea3b236cdba73e6e33899b38fc6be442a0720385;hb=c3a63cc70eb518a7ccd617ce83151fc32faa52de;hp=84c511ae917870f6ccbf9e360401d30b6532386a;hpb=00853100dcd6d340d81783c0680ef609e2c87420;p=cellular-automata.git diff --git a/001/src/life_god.erl b/001/src/life_god.erl index 84c511a..ea3b236 100644 --- a/001/src/life_god.erl +++ b/001/src/life_god.erl @@ -3,7 +3,7 @@ %% API --export([start_link/2]). +-export([start_link/3]). %% Callbacks -export([init/1]). @@ -17,20 +17,24 @@ %% API %% ============================================================================ -start_link(X, CellData) -> - supervisor:start_link({local, ?MODULE}, ?MODULE, [X, CellData]). +start_link(X, Y, CellData) -> + supervisor:start_link({local, ?MODULE}, ?MODULE, [X, Y, CellData]). %% ============================================================================ %% Callbacks %% ============================================================================ -init([X, CellData]) -> +init([X, Y, CellData]) -> CellNames = [Name || {_, Name, _} <- CellData], RestartStrategy = {one_for_one, 1000000, 1}, + + Observer = ?CHILD(worker, life_observer, [X, Y]), Cells = [spec_cell(Datum) || Datum <- CellData], - Time = ?CHILD(worker, life_time, [X, CellNames]), - Children = Cells ++ [Time], + Time = ?CHILD(worker, life_time, [X, Y, CellNames]), + + Children = [Observer | Cells ++ [Time]], + {ok, {RestartStrategy, Children}}.