public string Solve(string[] input) { var parser = new InstructionParser(); var instructions = input.Select(parser.Parse); var simulator = new ScreenSimulator(50, 6); var endState = instructions.Aggregate(simulator.InitialState(), (state, instruction) => simulator.Simulate(instruction, state)); return(endState.ToString()); }
public string Solve(string[] input) { var parser = new InstructionParser(); var instructions = input.Select(parser.Parse); var simulator = new ScreenSimulator(50, 6); var endState = instructions.Aggregate(simulator.InitialState(), (state, instruction) => simulator.Simulate(instruction, state)); int pixelsLit = endState.Pixels.Cast <bool>().Count(pixel => pixel); return(pixelsLit.ToString()); }