;;;;;;;;;;;;;;;;;
;;;  Gripper  ;;;
;;;;;;;;;;;;;;;;;

(define (domain gripper-strips)
   (:predicates (at-robby ?room)
                (at ?ball ?room)
                (free ?gripper)
                (carry ?ball ?gripper))


   (:action move
       :parameters   (?from ?to)
       :precondition (at-robby ?from)
       :effect       (and (at-robby ?to)
                          (not (at-robby ?from))))


   (:action pick
       :parameters   (?ball ?room ?gripper)
       :precondition (and (at ?ball ?room)
                          (at-robby ?room)
                          (free ?gripper))
       :effect       (and (carry ?ball ?gripper)
                          (not (at ?ball ?room)) 
                          (not (free ?gripper))))


   (:action drop
       :parameters   (?ball ?room ?gripper)
       :precondition (and (carry ?ball ?gripper)
                          (at-robby ?room))
       :effect       (and (at ?ball ?room)
                          (free ?gripper)
                          (not (carry ?ball ?gripper)))))

