class Window: def __init__(self): """Initialize PyGame""" pygame.init() """Set the window Size""" self.width = 600 self.height = 600 """Create the Screen""" self.font = pygame.font.SysFont("monospace", 20) self.screen = pygame.display.set_mode((self.width, self.height)) """Initialize classes as None""" self.disk = None self.r1 = None self.r2 = None self.exit = None self.clock = None def new(self, radius, r1StartPos, r2StartPos, exitPos, startPointOnEdge, r1TravelToEdge, r2TravelToEdge, r1TravelOnCircleEdge, r2TravelOnCircleEdge): """Create our classes""" self.disk = Disk(radius, (300, 300)) self.r1 = Robot(self.disk, r1StartPos, exitPos, startPointOnEdge, r1TravelToEdge, r1TravelOnCircleEdge, False) self.r2 = Robot(self.disk, r2StartPos, exitPos, startPointOnEdge, r2TravelToEdge, r2TravelOnCircleEdge, True) self.exit = Exit(exitPos) self.clock = pygame.time.Clock() def _draw(self): self.screen.fill(pygame.Color(255, 255, 255)) self.disk.draw(self.screen) self.exit.draw(self.screen) self.r1.draw(self.screen, self.font) self.r2.draw(self.screen, self.font) pygame.display.update() def _update(self): elapsedTime = self.clock.tick_busy_loop( 60) / 1000 #Seconds since last update self.r1.update(elapsedTime) self.r2.update(elapsedTime) def MainLoop(self): """This is the Main Draw Loop""" while 1: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() if (None not in (self.r1, self.r2, self.disk, self.exit, self.clock)): if (self.r1.getIsFinished() and self.r2.getIsFinished()): time.sleep(2) return self._update() self._draw()
def test_movetest(self): robot = Robot() robot.place(1, 2, "WEST") robot.move() self.assertEqual(robot.report(), "(0, 2, WEST)") # shouldn't go more in west direction robot.move() self.assertEqual(robot.report(), "(0, 2, WEST)")
def new(self, radius, r1StartPos, r2StartPos, exitPos, startPointOnEdge, r1TravelToEdge, r2TravelToEdge, r1TravelOnCircleEdge, r2TravelOnCircleEdge): """Create our classes""" self.disk = Disk(radius, (300, 300)) self.r1 = Robot(self.disk, r1StartPos, exitPos, startPointOnEdge, r1TravelToEdge, r1TravelOnCircleEdge, False) self.r2 = Robot(self.disk, r2StartPos, exitPos, startPointOnEdge, r2TravelToEdge, r2TravelOnCircleEdge, True) self.exit = Exit(exitPos) self.clock = pygame.time.Clock()
from classes.board import Board from classes.robot import Robot f = open('list_moves.txt') list_moves_from_file = [line.rstrip('\n').split(",") for line in f] board_size = 5 step = 1 for moves in list_moves_from_file: print(moves) board = Board() board.generate(board_size) robot = Robot('ROBOT', 0, 0) robot.print_position() for move in moves: board.set_robot('O', robot.x, robot.y) robot.walk(move, step, board_size) robot.print_position() board.set_robot(robot.symbol, robot.x, robot.y) board.display()
def main(args): filters = [1, 3, 9, 27] gnoise, epochs = selectGaussianNoise(args) sillyBot = Robot() data = sillyBot.getSensorReadings(epochs, gnoise) sillyBot.printSensorData(data, 'unfiltered') fig, axes = plt.subplots(nrows=4, ncols=5, sharex=True, sharey=True) fig.suptitle('Filter noise={0}'.format(gnoise), fontsize=20) axes[0, 0].plot(data) axes[0, 0].set_title('Unfiltered') idx=1 for n in filters: meandata = sillyBot.filterData(data, n, usemedian=False, usenumpy=False) mediandata = sillyBot.filterData(data, n, usemedian=True, usenumpy=False) sillyBot.printSensorData(meandata, 'mean_{0}'.format(n)) sillyBot.printSensorData(mediandata, 'median_{0}'.format(n)) sillyBot.printStatistics(meandata, 'mean_{0}'.format(n)) sillyBot.printStatistics(mediandata, 'median_{0}'.format(n)) axes[0, idx].plot(meandata) axes[0, idx].set_title('mean = {0}'.format(n)) axes[1, idx].plot(mediandata) axes[1, idx].set_title('median = {0}'.format(n)) meandata = sillyBot.filterData(data, n, usemedian=False, usenumpy=True) mediandata = sillyBot.filterData(data, n, usemedian=True, usenumpy=True) axes[2, idx].plot(meandata) axes[2, idx].set_title('NP mean = {0}'.format(n)) axes[3, idx].plot(mediandata) axes[3, idx].set_title('NP median = {0}'.format(n)) idx += 1 sillyBot.printSensorData(meandata, 'mean_{0}'.format(n)) sillyBot.printSensorData(mediandata, 'median_{0}'.format(n)) plt.show()
# Code by Niroo Arjuna from classes.robot import Robot robot = Robot() condition = True print('--------------------------\n' ''' ( * ) )\ ) ) ) ( ) ( ( ` ) /( ( (()/( ( /( ( /( )\ ( /( ) )\ )\ ( ( ( ( ______( )(_)| )\ )___ /(_))( )\()) ( )\())__(((_) )\())( /(((_|(_)))\ ( )\))( ))\ ______ / / / (_(_()))\(()/(___(_)) )\((_)\ )\(_))/___)\___((_)\ )(_))_ _ /((_))\ )((_))\ /((_)/ / / / / / / /|_ _((_))(_)) | _ \((_) |(_) ((_) |_ ((/ __| |(_|(_)_| || (_)) _(_/( (()(_|_)) / / / / /_/_/_/ | |/ _ \ || | | / _ \ '_ \/ _ \ _| | (__| ' \/ _` | || / -_) ' \)) _` |/ -_)_/_/_/ |_|\___/\_, | |_|_\___/_.__/\___/\__| \___|_||_\__,_|_||_\___|_||_|\__, |\___| |__/ |___/ ''') print("--------------------------") print("Toy Robot Simulator Challenge Solution") print("Developed by: Niroo Arjuna") print("--------------------------") while condition: text_entered = input("Enter a new command (Type QUIT to exit script) ") # Convert user input to uppercase, so command comparison is case insensitive text_upper = text_entered.upper() # Split user input to a list words = text_upper.split()
def test_placetest(self): robot = Robot() robot.place(2, 2, "EAST") self.assertEqual(robot.report(), "(2, 2, EAST)") # more than board bounds robot.place(1, 6, "NORTH") self.assertNotEqual(robot.report(), "(1, 6, NORTH)") robot.place(0, 0, "NORTH") self.assertEqual(robot.report(), "(0, 0, NORTH)")
def test_example2(self): robot = Robot() robot.place(0, 0, "NORTH") self.assertEqual(robot.report(), "(0, 0, NORTH)") robot.left() self.assertEqual(robot.report(), "(0, 0, WEST)") robot.report() self.assertEqual(robot.report(), "(0, 0, WEST)")
def test_example1(self): robot = Robot() robot.place(0, 0, "NORTH") self.assertEqual(robot.report(), "(0, 0, NORTH)") robot.move() self.assertEqual(robot.report(), "(0, 1, NORTH)") robot.report() self.assertEqual(robot.report(), "(0, 1, NORTH)")
def test_lefttest(self): robot = Robot() robot.place(4, 4, "EAST") # turn around full circle robot.left() self.assertEqual(robot.report(), "(4, 4, NORTH)") robot.left() self.assertEqual(robot.report(), "(4, 4, WEST)") robot.left() self.assertEqual(robot.report(), "(4, 4, SOUTH)") robot.left() self.assertEqual(robot.report(), "(4, 4, EAST)")
def test_righttest(self): robot = Robot() robot.place(0, 3, "EAST") # turn around full circle robot.right() self.assertEqual(robot.report(), "(0, 3, SOUTH)") robot.right() self.assertEqual(robot.report(), "(0, 3, WEST)") robot.right() self.assertEqual(robot.report(), "(0, 3, NORTH)") robot.right() self.assertEqual(robot.report(), "(0, 3, EAST)")
def test_example3(self): robot = Robot() robot.place(1, 2, "EAST") self.assertEqual(robot.report(), "(1, 2, EAST)") robot.move() self.assertEqual(robot.report(), "(2, 2, EAST)") robot.move() self.assertEqual(robot.report(), "(3, 2, EAST)") robot.left() self.assertEqual(robot.report(), "(3, 2, NORTH)") robot.move() self.assertEqual(robot.report(), "(3, 3, NORTH)") robot.report() self.assertEqual(robot.report(), "(3, 3, NORTH)") # Code by Niroo Arjuna