Simulate the passage of a single time-step. Move the robot to a new position and mark the tile it is on as having been cleaned. """ #raise NotImplementedError next_position=self.getRobotPosition().getNewPosition(self.getRobotDirection(), self.speed) if self.room.isPositionInRoom(next_position) == False: self.setRobotDirection(random.randint(0, 359)) else: self.setRobotPosition(next_position) self.room.cleanTileAtPosition(next_position) # Uncomment this line to see your implementation of StandardRobot in action! testRobotMovement(StandardRobot, RectangularRoom) # === Problem 4 def runSimulation(num_robots, speed, width, height, min_coverage, num_trials, robot_type): """ Runs NUM_TRIALS trials of the simulation and returns the mean number of time-steps needed to clean the fraction MIN_COVERAGE of the room. The simulation is run with NUM_ROBOTS robots of type ROBOT_TYPE, each with speed SPEED, in a room of dimensions WIDTH x HEIGHT. num_robots: an int (num_robots > 0) speed: a float (speed > 0) width: an int (width > 0)
"by height:", height) aspect_ratios.append(float(width) / height) times1.append( runSimulation(2, 1.0, width, height, 0.8, 200, StandardRobot)) times2.append( runSimulation(2, 1.0, width, height, 0.8, 200, RandomWalkRobot)) pylab.plot(aspect_ratios, times1) pylab.plot(aspect_ratios, times2) pylab.title(title) pylab.legend(('StandardRobot', 'RandomWalkRobot')) pylab.xlabel(x_label) pylab.ylabel(y_label) pylab.show() testRobotMovement(RandomWalkRobot, RectangularRoom) # === Problem 6 # NOTE: If you are running the simulation, you will have to close it # before the plot will show up. # # 1) Write a function call to showPlot1 that generates an appropriately-labeled # plot. # # (... your call here ...) # # # 2) Write a function call to showPlot2 that generates an appropriately-labeled # plot. #