public BitmapModification(Bitmap original, Instruction instruction) { this.Original = original; this.Instruction = instruction; var simulator = new ScreenSimulator(original.Width, original.Height); this.Resulting = simulator.Simulate(instruction, original); }
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()); }