private static void GenerateCubes <T>(IEnumerable <IEnumerable <bool> > cubeStates) where T : INPoint { var manager = new CubeManager <T>(cubeStates); for (var n = 0; n < 6; ++n) { manager.ExpandCubeSpace(); manager.EnergyTransfer(); Console.WriteLine($"Active cubes at step {n}: {manager.Cubes.Values.Count(c => c)}"); } Console.WriteLine($"Total active cubes: {manager.Cubes.Values.Count(c => c)}"); Console.WriteLine(); }