Algorithm:
initialize forest to be an (n + 2) × (n + 2) grid of values, as follows: EMPTY (no
tree) cells are on the boundary and TREE (non-burning tree) cells are in the
interior except for one BURNING (burning tree) cell in the middle.
grids ← list containing forest
do as long as a burning tree is in forest:
forest ← call applySpread with arguments forest and probCatch to return
an (n + 2) × (n + 2) grid with spread applied to each internal cell
of forest
grids ← the list with forest appended onto the end of grids
return grids