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))
```