import scala.util.Random class Forest(matrix:Array[Array[Char]]){ import Forest._ val f=0.01; // auto combustion probability val p=0.1; // tree creation probability val rows=matrix.size val cols=matrix(0).size def evolve():Forest=new Forest(Array.tabulate(rows, cols){(y,x)=> matrix(y)(x) match { case EMPTY => if (Random.nextDouble EMPTY case TREE => if (neighbours(x, y).exists(_==BURNING)) BURNING else if (Random.nextDouble if (Random.nextDouble<0.5) TREE else EMPTY)) }