Nice exercise simulating. Though the first where my functional approach caused me trouble. Would have needed something like a comonad. But at the end I chose to switch to a plain old imparative procedure.
Input
Result
part 1: NaN
part 2: NaN
Details
round: 0
current flashes: 0
total flashes: 0