public Control Run() { var instructions = InstructionMenu().Ask(); if (instructions == MANUAL_INPUT) { var instructionReader = new MultiLineRead("Please input the navigation instructions:"); instructions = instructionReader.Ask(); } var position = new Position(0, 0, Cardinal.North); var positions = new List <Position>(); positions.Add(position); position = ApplyInstructions(position, ConvertInstructions(instructions), positions); var blocks = BlocksFromOrigin(position); Console.WriteLine("You are {0} blocks from your drop point.", blocks); position = FindRepeatPosition(positions); if (position != null) { blocks = BlocksFromOrigin(position); Console.WriteLine("First duplicated position is {0}, which is {1} blocks from your drop point.", position, blocks); } return(Control.Continue); }
public Control Run() { var input = new MultiLineRead("Please input the sequence of triangles:"); var triangleStr = input.Ask().Trim(); var triangles = ConvertTriangles(triangleStr); WriteValidCount(triangles); WriteValidCount(VerticalTriangles(triangles), " Vertical "); return(Control.Continue); }