You are not logged in. login register
Game blocks
name blocks
creator admin
number of roles 1
stylesheet blocksworld/blocksworld.xsl
GDL v1
enabled
matches show matches
statistics show game statistics
description

Game Description

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Blocks World
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

  (role robot)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

  (init (clear b))
  (init (clear c))

  (init (on c a))

  (init (table a))
  (init (table b))

  (init (step 1))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

  (<= (next (on ?x ?y))
      (does robot (s ?x ?y)))

  (<= (next (on ?x ?y))
      (does robot (s ?u ?v))
      (true (on ?x ?y)))

  (<= (next (table ?x))
      (does robot (s ?u ?v))
      (true (table ?x))
      (distinct ?u ?x))

  (<= (next (clear ?y))
      (does robot (s ?u ?v))
      (true (clear ?y))
      (distinct ?v ?y))


  (<= (next (on ?x ?y))
      (does robot (u ?u ?v))
      (true (on ?x ?y))
      (distinct ?u ?x))

  (<= (next (table ?x))
      (does robot (u ?x ?y)))

  (<= (next (table ?x))
      (does robot (u ?u ?v))
      (true (table ?x)))

  (<= (next (clear ?y))
      (does robot (u ?x ?y)))

  (<= (next (clear ?x))
      (does robot (u ?u ?v))
      (true (clear ?x)))


  (<= (next (step ?y))
      (true (step ?x))
      (succ ?x ?y))


  (succ 1 2)
  (succ 2 3)
  (succ 3 4)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

  (<= (legal robot (s ?x ?y))
      (true (clear ?x))
      (true (table ?x))
      (true (clear ?y))
       (distinct ?x ?y))

  (<= (legal robot (u ?x ?y))
      (true (clear ?x))
      (true (on ?x ?y)))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

  (<= (goal robot 100)
      (true (on a b))
      (true (on b c)))

  (<= (goal robot 0)
      (not (true (on a b))))

  (<= (goal robot 0)
      (not (true (on b c))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

  (<= terminal
      (true (step 4)))

  (<= terminal
      (true (on a b))
      (true (on b c)))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

sees_XML(...) rules

(<= (sees_xml random ?t) (true ?t))
(<= (sees_xml ?p ?t) (role ?p) (distinct ?p random) (true ?t))