Exemplo n.º 1
0
 public int Evaluate(int iterations)
 {
     for (int iteration = 0; iteration < iterations; ++iteration)
     {
         ++Iterations;
         _grid.VisitMatrix((int x, int y, AutomataCell cell) => {
             int result = _rule.Evaluate(cell, _grid.CountNeighbors(x, y));
             _grid.SetNextCell(x, y, new AutomataCell(cell.State, result));
         });
         // Swap matrices so that _matrix always shows the latest state
         _grid.SwapMatricies();
     }
     return(Iterations);
 }