protected override int SolvePartTwo() { SubmarineDriver submarine = new SubmarineDriver(); submarine.SubmarineCommandFactory = new CorrectSubmarineCommandFactory(); submarine.ExecutePlannedCourse(commands); return(submarine.HorizontalPosition * submarine.Depth); }
public void SetUp() { commands = new List <string>() { "forward 5", "down 5", "forward 8", "up 3", "down 8", "forward 2" }; submarine = new SubmarineDriver(); }
protected override void ReadInput(StreamReader input) { report = new List <int>(); submarine = new SubmarineDriver(); string line; while ((line = input.ReadLine()) != null) { report.Add(int.Parse(line)); } }
public override void Execute(SubmarineDriver submarine) { submarine.HorizontalPosition += parameter; }
public override void Execute(SubmarineDriver submarine) { submarine.Depth -= parameter; }
public override void Execute(SubmarineDriver submarine) { submarine.HorizontalPosition += parameter; submarine.Depth += (submarine.Aim * parameter); }
public abstract void Execute(SubmarineDriver submarine);