-define(INTERVAL, 100).
--record(state, {x :: non_neg_integer()
- ,y :: non_neg_integer()
- ,n :: non_neg_integer()
- ,bar :: string()
- ,board=array:new() :: array()
- ,gen_count :: non_neg_integer()
- ,gen_duration :: non_neg_integer()
- ,print_time :: non_neg_integer()
+-record(state, {x :: non_neg_integer()
+ ,y :: non_neg_integer()
+ ,n :: pos_integer()
+ ,bar :: nonempty_string()
+ ,board :: array()
+ ,gen_count :: pos_integer()
+ ,gen_duration :: non_neg_integer()
+ ,print_time :: non_neg_integer()
}).
,n = X * Y
,bar = [?CHAR_BAR || _ <- lists:seq(1, X)]
,board = Board
- ,gen_count = 1
+ ,gen_count = 1 % Consider inital state to be generation 1
,gen_duration = Time
- ,print_time = 0
+ ,print_time = 0 % There was no print time yet
},
life_loop(State).
end
),
- {NewTime, NewBoard} = timer:tc(fun() -> next_generation(X, Y, Board) end),
+ {NewTime, NewBoard} = timer:tc(
+ fun() ->
+ next_generation(X, Y, Board)
+ end
+ ),
+
NewState = State#state{board = NewBoard
,gen_count = GenCount + 1
,gen_duration = NewTime
do_print_board(Board) ->
- CharLists = array:to_list(
+ RowStrings = array:to_list(
array:map(
fun(_, Row) ->
array:to_list(
),
ok = lists:foreach(
- fun(CharList) ->
- ok = io:format("~s~n", [CharList])
+ fun(RowString) ->
+ ok = io:format("~s~n", [RowString])
end,
- CharLists
+ RowStrings
).