X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=001%2Fsrc%2Ftime.erl;h=fb947e3f928eb73c5c890b5df13a0229a9dea4c0;hb=f7349482eecfd0f58668b13a8bdf147b0bcf877f;hp=d7109262f8be543632e37a58f61b8eca563c7fe8;hpb=d2a0e2f9319260ac266296451915776f3399fb70;p=cellular-automata.git diff --git a/001/src/time.erl b/001/src/time.erl index d710926..fb947e3 100644 --- a/001/src/time.erl +++ b/001/src/time.erl @@ -29,6 +29,7 @@ ,num_cells :: integer() ,state_pairs :: list(tuple(integer(), integer())) | [] ,replies_pending :: integer() + ,gen_count = 0 :: integer() }). @@ -82,6 +83,7 @@ handle_cast({tock, {ID, CellState}}, #state{x=X ,state_pairs=StatePairs ,replies_pending=RepliesPending + ,gen_count=GenCount }=State) -> NewStatePairs = [{ID, CellState} | StatePairs], @@ -90,14 +92,17 @@ handle_cast({tock, {ID, CellState}}, case NewRepliesPending of 0 -> + NewGenCount = GenCount + 1, SortedStatePairs = lists:sort(NewStatePairs), StateChars = [state_to_char(S) || {_, S} <- SortedStatePairs], ok = do_print_bar(X), + ok = io:format("GENERATIONS: ~b~n", [NewGenCount]), + ok = do_print_bar(X), ok = do_print_state_chars(X, StateChars), ok = do_print_bar(X), ok = timer:sleep(?INTERVAL), cast(next_tick), - {noreply, NewState#state{state_pairs=[]}}; + {noreply, NewState#state{state_pairs=[], gen_count=NewGenCount}}; _N -> {noreply, NewState#state{state_pairs=NewStatePairs}}