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

Game Description

; blocksworldparallel
(role robot)
(init (clear1 b))
(init (clear1 c))
(init (on1 c a))
(init (table1 a))
(init (table1 b))
(init (clear2 b))
(init (clear2 c))
(init (on2 c a))
(init (table2 a))
(init (table2 b))
(init (step 1))
(<= (legal robot (do stackstack ?x1 ?y1 ?x2 ?y2))
    (legalstack1 ?x1 ?y1)
    (legalstack2 ?x2 ?y2))
(<= (legal robot (do stackunstack ?x1 ?y1 ?x2 ?y2))
    (legalstack1 ?x1 ?y1)
    (legalunstack2 ?x2 ?y2))
(<= (legal robot (do unstackstack ?x1 ?y1 ?x2 ?y2))
    (legalunstack1 ?x1 ?y1)
    (legalstack2 ?x2 ?y2))
(<= (legal robot (do unstackunstack ?x1 ?y1 ?x2 ?y2))
    (legalunstack1 ?x1 ?y1)
    (legalunstack2 ?x2 ?y2))
(<= (next (on1 ?x1 ?y1))
    (does robot (do ?move ?x1 ?y1 ?x2 ?y2))
    (game1stack ?move))
(<= (next (on1 ?x1 ?y1))
    (true (on1 ?x1 ?y1))
    (does robot (do ?move ?w1 ?z1 ?w2 ?z2))
    (game1unstack ?move)
    (distinct ?x1 ?w1))
(<= (next (on1 ?x1 ?y1))
    (true (on1 ?x1 ?y1))
    (does robot (do ?move ?w1 ?z1 ?w2 ?z2))
    (game1stack ?move)
    (distinct ?x1 ?w1))
(<= (next (table1 ?x1))
    (does robot (do ?move ?x1 ?y1 ?x2 ?y2))
    (game1unstack ?move))
(<= (next (table1 ?x1))
    (true (table1 ?x1))
    (does robot (do ?move ?y1 ?z1 ?y2 ?z2))
    (game1unstack ?move))
(<= (next (table1 ?x1))
    (true (table1 ?x1))
    (does robot (do ?move ?y1 ?z1 ?y2 ?z2))
    (game1stack ?move)
    (distinct ?x1 ?y1))
(<= (next (clear1 ?y1))
    (does robot (do ?move ?x1 ?y1 ?x2 ?y2))
    (game1unstack ?move))
(<= (next (clear1 ?y1))
    (true (clear1 ?y1))
    (does robot (do ?move ?x1 ?z1 ?x2 ?z2))
    (game1unstack ?move))
(<= (next (clear1 ?y1))
    (true (clear1 ?y1))
    (does robot (do ?move ?x1 ?z1 ?x2 ?z2))
    (game1stack ?move)
    (distinct ?y1 ?z1))
(<= (next (on2 ?x2 ?y2))
    (does robot (do ?move ?x1 ?y1 ?x2 ?y2))
    (game2stack ?move))
(<= (next (on2 ?x2 ?y2))
    (true (on2 ?x2 ?y2))
    (does robot (do ?move ?w1 ?z1 ?w2 ?z2))
    (game2unstack ?move)
    (distinct ?x2 ?w2))
(<= (next (on2 ?x2 ?y2))
    (true (on2 ?x2 ?y2))
    (does robot (do ?move ?w1 ?z1 ?w2 ?z2))
    (game2stack ?move)
    (distinct ?x2 ?w2))
(<= (next (table2 ?x2))
    (does robot (do ?move ?x1 ?y1 ?x2 ?y2))
    (game2unstack ?move))
(<= (next (table2 ?x2))
    (true (table2 ?x2))
    (does robot (do ?move ?y1 ?z1 ?y2 ?z2))
    (game2unstack ?move))
(<= (next (table2 ?x2))
    (true (table2 ?x2))
    (does robot (do ?move ?y1 ?z1 ?y2 ?z2))
    (game2stack ?move)
    (distinct ?x2 ?y2))
(<= (next (clear2 ?y2))
    (does robot (do ?move ?x1 ?y1 ?x2 ?y2))
    (game2unstack ?move))
(<= (next (clear2 ?y2))
    (true (clear2 ?y2))
    (does robot (do ?move ?x1 ?z1 ?x2 ?z2))
    (game2unstack ?move))
(<= (next (clear2 ?y2))
    (true (clear2 ?y2))
    (does robot (do ?move ?x1 ?z1 ?x2 ?z2))
    (game2stack ?move)
    (distinct ?y2 ?z2))
(<= (next (step ?y))
    (true (step ?x))
    (succ ?x ?y))
(<= terminal
    (true (step 4)))
(<= (goal robot 100)
    goal1-100
    goal2-100)
(<= (goal robot 50)
    goal1-100
    goal2-0)
(<= (goal robot 50)
    goal1-0
    goal2-100)
(<= (goal robot 0)
    goal1-0
    goal2-0)
(<= (legalstack1 ?x ?y)
    (true (clear1 ?x))
    (true (table1 ?x))
    (true (clear1 ?y))
    (distinct ?x ?y))
(<= (legalunstack1 ?x ?y)
    (true (clear1 ?x))
    (true (on1 ?x ?y)))
(<= (legalstack2 ?x ?y)
    (true (clear2 ?x))
    (true (table2 ?x))
    (true (clear2 ?y))
    (distinct ?x ?y))
(<= (legalunstack2 ?x ?y)
    (true (clear2 ?x))
    (true (on2 ?x ?y)))
(<= goal1-100
    (true (on1 a b))
    (true (on1 b c)))
(<= goal1-0
    (not (true (on1 a b))))
(<= goal1-0
    (not (true (on1 b c))))
(<= goal2-100
    (true (on2 a b))
    (true (on2 b c)))
(<= goal2-0
    (not (true (on2 a b))))
(<= goal2-0
    (not (true (on2 b c))))
(succ 1 2)
(succ 2 3)
(succ 3 4)
(game1stack stackstack)
(game1stack stackunstack)
(game1unstack unstackstack)
(game1unstack unstackunstack)
(game2stack stackstack)
(game2unstack stackunstack)
(game2stack unstackstack)
(game2unstack unstackunstack)

sees_XML(...) rules

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