Game blocksworldserial

name | blocksworldserial | |
---|---|---|

creator | admin | |

number of roles | 1 | |

stylesheet | blocksworld/blocksworld.xsl | |

GDL | v1 | |

enabled | ||

matches | show matches | |

statistics | show game statistics | |

description |

## Game Description

```
; blocksworldserial
(role robot)
(init (clear1 b))
(init (clear1 c))
(init (on1 c a))
(init (table1 a))
(init (table1 b))
(init (step1 1))
(init (clear2 b))
(init (clear2 c))
(init (on2 c a))
(init (table2 a))
(init (table2 b))
(init (step2 1))
(<= (legal robot (stack1 ?x ?y))
(not game1over)
(legalstack1 ?x ?y))
(<= (legal robot (unstack1 ?x ?y))
(not game1over)
(legalunstack1 ?x ?y))
(<= (legal robot (stack2 ?x ?y))
game1over
(legalstack2 ?x ?y))
(<= (legal robot (unstack2 ?x ?y))
game1over
(legalunstack2 ?x ?y))
(<= (next (on1 ?x ?y))
(does robot (stack1 ?x ?y)))
(<= (next (on1 ?x ?y))
(true (on1 ?x ?y))
(does robot (unstack1 ?w ?z))
(distinct ?x ?w))
(<= (next (on1 ?x ?y))
(true (on1 ?x ?y))
(does robot (stack1 ?w ?z))
(distinct ?x ?w))
(<= (next (on1 ?x ?y))
(true (on1 ?x ?y))
game1over)
(<= (next (table1 ?x))
(does robot (unstack1 ?x ?y)))
(<= (next (table1 ?x))
(true (table1 ?x))
(does robot (unstack1 ?y ?z)))
(<= (next (table1 ?x))
(true (table1 ?x))
(does robot (stack1 ?y ?z))
(distinct ?x ?y))
(<= (next (table1 ?x))
(true (table1 ?x))
game1over)
(<= (next (clear1 ?y))
(does robot (unstack1 ?x ?y)))
(<= (next (clear1 ?y))
(true (clear1 ?y))
(does robot (unstack1 ?x ?z)))
(<= (next (clear1 ?y))
(true (clear1 ?y))
(does robot (stack1 ?x ?z))
(distinct ?y ?z))
(<= (next (clear1 ?x))
(true (clear1 ?x))
game1over)
(<= (next (step1 ?y))
(not game1over)
(true (step1 ?x))
(succ ?x ?y))
(<= (next (step1 ?x))
game1over
(true (step1 ?x)))
(<= (next (on2 ?x ?y))
(does robot (stack2 ?x ?y)))
(<= (next (on2 ?x ?y))
(true (on2 ?x ?y))
(does robot (unstack2 ?w ?z))
(distinct ?x ?w))
(<= (next (on2 ?x ?y))
(true (on2 ?x ?y))
(does robot (stack2 ?w ?z))
(distinct ?x ?w))
(<= (next (on2 ?x ?y))
(true (on2 ?x ?y))
(not game1over))
(<= (next (table2 ?x))
(does robot (unstack2 ?x ?y)))
(<= (next (table2 ?x))
(true (table2 ?x))
(does robot (unstack2 ?y ?z)))
(<= (next (table2 ?x))
(true (table2 ?x))
(does robot (stack2 ?y ?z))
(distinct ?x ?y))
(<= (next (table2 ?x))
(true (table2 ?x))
(not game1over))
(<= (next (clear2 ?y))
(does robot (unstack2 ?x ?y)))
(<= (next (clear2 ?y))
(true (clear2 ?y))
(does robot (unstack2 ?x ?z)))
(<= (next (clear2 ?y))
(true (clear2 ?y))
(does robot (stack2 ?x ?z))
(distinct ?y ?z))
(<= (next (clear2 ?x))
(true (clear2 ?x))
(not game1over))
(<= (next (step2 ?y))
game1over
(true (step2 ?x))
(succ ?x ?y))
(<= (next (step2 ?x))
(not game1over)
(true (step2 ?x)))
(<= (next (game1overlock))
game1termcond)
(<= (next (game1overlock))
(true (game1overlock)))
(<= terminal
game2termcond)
(<= (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)
(<= game1over
game1termcond)
(<= game1over
(true (game1overlock)))
(<= game1termcond
(true (step1 4)))
(<= game2termcond
(true (step2 4)))
(<= 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))))
(<= (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)))
(succ 1 2)
(succ 2 3)
(succ 3 4)
```

## sees_XML(...) rules

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