def Grasp(self, item): """ pilla el bloque X """ message = 'Grasp %s' % (item) gtree = GoalTree(message) if self._table.get(item) != None: gtree.add_child(self.ClearTop(item)) return gtree
def GetRidOf(self, item): """ saca el objeto X del medio (edited) """ message = 'GetRidOf %s' % (item) gtree = GoalTree(message) if self._table.get(item) != None: gtree.add_child(self.PutOnTable(item)) return gtree
def ClearTop(self, item): """ despeja la parte superior del objeto X """ message = 'ClearTop %s' % (item) gtree = GoalTree(message) stack = [] blk = self._table.get(item) if self.pickable(blk.name): return gtree for row in range(blk.row +1, self._table.height): if self._table.grid[blk.col][row] != None: stack.append(self._table.grid[blk.col][row].name) while len(stack) > 0: new_blk = stack.pop() gtree.add_child(self.GetRidOf(new_blk)) return gtree
def test_add_child(self): g = GoalTree('Test') g.add_child(GoalTree('child')) self.assertEqual(g._children[0].parent, 'Test') self.assertEqual(g._children[0].name, 'child')