Exemplo n.º 1
0
    def load_level(self, n):
        rob.set_field_size(11, 11)

        a = random.randint(1, 7)
        b = random.randint(1, 3)
        c = 1 if random.randint(0, 1) else -1

        rob.goto(10, 5)

        for i in range(a):
            rob.put_wall(left=True, right=True)
            rob.move_up()

        if c == 1:
            rob.put_wall(left=True, top=True)
        else:
            rob.put_wall(right=True, top=True)

        for i in range(b):
            if c == 1:
                rob.move_right()
            else:
                rob.move_left()
            rob.put_wall(top=True, bottom=True)

        if c == -1:
            rob.put_wall(left=True)
        else:
            rob.put_wall(right=True)

        rob.set_parking_cell(*rob.get_pos())

        rob.goto(10, 5)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    def testUp(self):
        rob.goto(9, 0)
        for i in range(8):
            rob.move_up()
            self.assertEqual(rob.get_pos(), (8 - i, 0))

        rob.goto(9, 0)
        rob.move_up(9)

        self.assertEqual(rob.get_pos(), (0, 0))
Exemplo n.º 5
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)