def load_level(self, n): rob.set_field_size(13, 20) l = random.randint(10, 15) corridors = [random.randint(0, 1) for i in range(l)] rob.goto(10, 1) for i in range(l): rob.move_right() rob.put_wall(bottom=True) if not corridors[i]: rob.put_wall(top=True) continue k = random.randint(1, 8) for j in range(k): rob.move_up() pos = rob.get_pos() rob.set_cell_type(pos[0], pos[1], rob.CELL_TO_BE_FILLED) rob.put_wall(left=True, right=True) rob.put_wall(top=True) for j in range(k): rob.move_down() self.cells_to_fill = find_cells_to_be_filled() rob.put_wall(right=True) rob.set_parking_cell(10, 1) rob.goto(10, 1)
def testWallCrash(self): rob.goto(0, 0) for move, test in [('move_right', 'move_up'), ('move_down', 'move_right'), ('move_left', 'move_down'), ('move_up', 'move_left')]: for i in range(10): with self.assertRaises(RobotCrashed): getattr(rob, test)() if i != 9: getattr(rob, move)() rob.goto(0, 0) with self.assertRaises(RobotCrashed): rob.move_right(10) rob.goto(0, 0) with self.assertRaises(RobotCrashed): rob.move_down(10) rob.goto(9, 9) with self.assertRaises(RobotCrashed): rob.move_left(10) rob.goto(9, 9) with self.assertRaises(RobotCrashed): rob.move_up(10)
def testDown(self): rob.goto(0, 0) for i in range(8): rob.move_down() self.assertEqual(rob.get_pos(), (i + 1, 0)) rob.goto(0, 0) rob.move_down(9) self.assertEqual(rob.get_pos(), (9, 0))
def load_level(self, n): l = random.randint(20, 30) rob.set_field_size(13, l + 1) corridors = [random.randint(0, 1) for i in range(l)] self.filled_cells_number = 0 rob.goto(10, 0) rob.put_wall(top=True, bottom=True) rob.set_cell_type(10, 0, rob.CELL_TO_BE_FILLED) for j in range(l - 1): rob.move_right() rob.put_wall(bottom=True) if not corridors[j + 1]: rob.put_wall(top=True) rob.set_cell_type(10, j + 1, rob.CELL_TO_BE_FILLED) continue k = random.randint(1, 8) for q in range(k): rob.move_up() pos = rob.get_pos() if random.randint(0, 1) == 0: rob.fill_cell() self.filled_cells_number += 1 else: rob.set_cell_type(pos[0], pos[1], rob.CELL_TO_BE_FILLED) rob.put_wall(left=True, right=True) rob.put_wall(top=True) for q in range(k): rob.move_down() self.cells_to_fill = find_cells_to_be_filled() + find_filled_cells() rob.set_parking_cell(10, l) rob.goto(10, 0)