/// <summary> /// Entry Point for the simulator /// </summary> /// <param name="args"></param> static void Main(string[] args) { ToyRobot tr = new ToyRobot(); TableTop tp = new TableTop(5, 5); Simulator simulator = new Simulator(tr, tp); Console.WriteLine("*********welcome to toy robot on a table of 5*5 **************"); Console.WriteLine("Valid commands to place on table: PLACE X,Y,NORTH|SOUTH|EAST|WEST (example: place 1,2,north)"); Console.WriteLine("Valid commands to move on table: MOVE|LEFT|RIGHT|REPORT|EXIT"); bool keepRunning = true; while (keepRunning) { String inputString = Console.ReadLine(); if (!string.IsNullOrWhiteSpace(inputString)) { if (String.Equals(Command.EXIT.ToString(), inputString, StringComparison.OrdinalIgnoreCase)) { keepRunning = false; Console.WriteLine("robot existing the table : press any key again to exit"); Console.ReadLine(); } else { try { CommandModel commandModel = CommandParser.GetCommand(inputString); if (commandModel != null) { if (commandModel.Command == Command.REPORT) { Console.WriteLine(simulator.Report()); } else { simulator.Action(commandModel).Execute(); Console.WriteLine(simulator.Report()); } } else { Console.WriteLine("command not accepted : " + inputString); Console.WriteLine("Valid commands to place on table: PLACE X,Y,NORTH|SOUTH|EAST|WEST (example: place 1,2,north)"); Console.WriteLine("Valid commands to move on table: MOVE|LEFT|RIGHT|REPORT|EXIT"); } } catch (Exception e) { Console.WriteLine("log : " + e.Message.ToString()); } } } else { Console.WriteLine("entered input string is null of empty"); } } }
/// <summary> /// To Check if Robot is Still on Table /// </summary> /// <param name="tt"></param> /// <returns></returns> public bool RobotStillOnTableTop(TableTop tt) { if (tt != null) { return((robotCoordinates.XCoordinate >= 0) && (robotCoordinates.XCoordinate <= tt.TopRightCoordinates.XCoordinate) && (robotCoordinates.YCoordinate >= 0) && (robotCoordinates.YCoordinate <= tt.TopRightCoordinates.YCoordinate)); } else { return(false); } }
/// <summary> /// Simulator Ctor /// </summary> /// <param name="toyRobot"></param> /// <param name="tableTop"></param> public Simulator(ToyRobot toyRobot, TableTop tableTop) { this.tr = toyRobot; this.tt = tableTop; }