-define(CHAR_ALIVE, 111). % "o"
-define(CHAR_BAR, 45). % "-"
--define(INTERVAL, 100).
+-define(GEN_INTERVAL, 100).
-record(state, {x :: non_neg_integer()
,print_time = PrintTime
},
- timer:sleep(?INTERVAL),
+ NewTimeMil = NewTime / 1000,
+ NextGenDelay = round(?GEN_INTERVAL - NewTimeMil),
+ timer:sleep(NextGenDelay),
+
life_loop(NewState).
do_print_board(Board) ->
+ % It seems that just doing a fold should be faster than map + to_list
+ % combo, but, after measuring several times, map + to_list has been
+ % consistently (nearly twice) faster than either foldl or foldr.
RowStrings = array:to_list(
array:map(
fun(_, Row) ->