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

Game Description

(role top)
(role right)
(role left)
(init (pos top c1 c1))
(init (pos right c9 c9))
(init (pos left c1 c9))
(init (wall c3 c5 c3 c6))
(init (wall c3 c5 c4 c6))
(init (wall c3 c6 c4 c6))
(init (wall c3 c6 c3 c7))
(init (wall c3 c6 c4 c7))
(init (wall c4 c6 c4 c7))
(init (wall c4 c6 c5 c7))
(init (wall c3 c7 c4 c7))
(init (wall c4 c7 c5 c7))
(init (step s0))
(<= (legal ?r (go ?x ?y))
    (true (pos ?r ?x1 ?y1))
    (possiblenextpos ?r ?x1 ?y1 ?x ?y)
    (not (blocked ?x1 ?y1 ?x ?y))
    (not (goalposreached ?r)))
(<= (legal ?r noop)
    (goalposreached ?r))
(<= (legal ?r noop)
    (true (pos ?r ?x1 ?y1))
    (not (exists_non_blocked_nextpos ?r ?x1 ?y1)))
(<= (exists_non_blocked_nextpos ?r ?x1 ?y1)
    (possiblenextpos ?r ?x1 ?y1 ?x ?y)
    (not (blocked ?x1 ?y1 ?x ?y)))
(<= (next (step ?y))
    (true (step ?x))
    (succ ?x ?y))
(<= (next (steps_to_goal ?r ?s))
    (true (step ?s1))
    (succ ?s1 ?s)
    (does ?r (go ?x ?y))
    (goalpos ?r ?x ?y)
    (not (collision ?r)))
(<= (next (steps_to_goal ?r ?s))
    (true (steps_to_goal ?r ?s)))
(<= (next (pos ?r ?x ?y))
    (true (pos ?r ?x ?y))
    (collision ?r))
(<= (next (pos ?r ?x ?y))
    (does ?r (go ?x ?y))
    (not (collision ?r)))
(<= (next (pos ?r ?x ?y))
    (true (pos ?r ?x ?y))
    (does ?r noop))
(<= (next (wall ?xa ?ya ?xb ?yb))
    (true (pos ?r ?x1 ?y1))
    (does ?r (go ?x2 ?y2))
    (reorder ?x1 ?y1 ?x2 ?y2 ?xa ?ya ?xb ?yb))
(<= (next (wall ?x1 ?y1 ?x2 ?y2))
    (true (wall ?x1 ?y1 ?x2 ?y2)))
(<= (collision ?r)
    (true (pos ?r ?x1 ?y1))
    (does ?r (go ?x ?y))
    (true (pos ?r2 ?x ?y))
    (does ?r2 (go ?x1 ?y1)))
(<= (only_one_reached_goal ?r1)
    (goalposreached ?r1)
    (role ?r2)
    (distinct ?r1 ?r2)
    (not (goalposreached ?r2))
    (role ?r3)
    (distinct ?r1 ?r3)
    (distinct ?r2 ?r3)
    (not (goalposreached ?r3)))
(<= (only_two_reached_goal ?r1 ?r2)
    (goalposreached ?r1)
    (role ?r2)
    (distinct ?r1 ?r2)
    (goalposreached ?r2)
    (role ?r3)
    (distinct ?r1 ?r3)
    (distinct ?r2 ?r3)
    (not (goalposreached ?r3)))
(<= all_reached_goal
    (goalposreached top)
    (goalposreached right)
    (goalposreached left))
(<= none_reached_goal
    (not (goalposreached top))
    (not (goalposreached right))
    (not (goalposreached left)))
(<= (goal ?r 100)
    (only_one_reached_goal ?r)
    (true (steps_to_goal ?r s8)))
(<= (goal ?r 90)
    (only_one_reached_goal ?r)
    (true (steps_to_goal ?r ?s))
    (smaller s8 ?s)
    (smaller ?s s16))
(<= (goal ?r 80)
    (only_one_reached_goal ?r)
    (true (steps_to_goal ?r ?s))
    (smaller s15 ?s))
(<= (goal ?r1 70)
    (only_two_reached_goal ?r1 ?r2)
    (true (steps_to_goal ?r1 ?s1))
    (true (steps_to_goal ?r2 ?s2))
    (smaller ?s1 ?s2))
(<= (goal ?r1 60)
    (only_two_reached_goal ?r1 ?r2)
    (true (steps_to_goal ?r1 ?s))
    (true (steps_to_goal ?r2 ?s)))
(<= (goal ?r1 50)
    (only_two_reached_goal ?r1 ?r2)
    (true (steps_to_goal ?r1 ?s1))
    (true (steps_to_goal ?r2 ?s2))
    (smaller ?s2 ?s1))
(<= (goal ?r1 40)
    all_reached_goal
    (true (steps_to_goal ?r1 ?s1))
    (true (steps_to_goal ?r2 ?s2))
    (distinct ?r1 ?r2)
    (true (steps_to_goal ?r3 ?s3))
    (distinct ?r1 ?r3)
    (distinct ?r2 ?r3)
    (smaller ?s1 ?s2)
    (smaller ?s1 ?s3))
(<= (goal ?r1 30)
    all_reached_goal
    (true (steps_to_goal ?r1 ?s1))
    (true (steps_to_goal ?r2 ?s2))
    (distinct ?r1 ?r2)
    (true (steps_to_goal ?r3 ?s3))
    (distinct ?r1 ?r3)
    (distinct ?r2 ?r3)
    (not (smaller ?s1 ?s2))
    (smaller ?s1 ?s3))
(<= (goal ?r1 20)
    all_reached_goal
    (true (steps_to_goal ?r1 ?s1))
    (true (steps_to_goal ?r2 ?s2))
    (distinct ?r1 ?r2)
    (true (steps_to_goal ?r3 ?s3))
    (distinct ?r1 ?r3)
    (distinct ?r2 ?r3)
    (not (smaller ?s1 ?s2))
    (not (smaller ?s1 ?s3)))
(<= (goal ?r 10)
    none_reached_goal
    (role ?r))
(<= (goal ?r 0)
    (not (goalposreached ?r))
    (role ?r)
    (role ?r1)
    (goalposreached ?r1))
(<= terminal
    (not legal_go))
(<= terminal
    (true (step s30)))
(<= legal_go
    (legal ?r (go ?x ?y)))
(<= (goalposreached ?r)
    (true (pos ?r ?x ?y))
    (goalpos ?r ?x ?y))
(<= (goalpos top ?x c9)
    (coordinate ?x))
(<= (goalpos right c1 ?y)
    (coordinate ?y))
(<= (goalpos left ?x ?x)
    (coordinate ?x))
(<= (goes ?r ?x1 ?y1 ?x2 ?y2)
    (true (pos ?r ?x1 ?y1))
    (does ?r (go ?x2 ?y2)))
(<= (possiblenextpos top ?x1 ?y1 ?x2 ?y2)
    (moveleft ?x1 ?y1 ?x2 ?y2))
(<= (possiblenextpos top ?x1 ?y1 ?x2 ?y2)
    (moveright ?x1 ?y1 ?x2 ?y2))
(<= (possiblenextpos top ?x1 ?y1 ?x2 ?y2)
    (movedownleft ?x1 ?y1 ?x2 ?y2))
(<= (possiblenextpos top ?x1 ?y1 ?x2 ?y2)
    (movedownright ?x1 ?y1 ?x2 ?y2))
(<= (possiblenextpos right ?x1 ?y1 ?x2 ?y2)
    (moveupright ?x1 ?y1 ?x2 ?y2))
(<= (possiblenextpos right ?x1 ?y1 ?x2 ?y2)
    (movedownleft ?x1 ?y1 ?x2 ?y2))
(<= (possiblenextpos right ?x1 ?y1 ?x2 ?y2)
    (moveupleft ?x1 ?y1 ?x2 ?y2))
(<= (possiblenextpos right ?x1 ?y1 ?x2 ?y2)
    (moveleft ?x1 ?y1 ?x2 ?y2))
(<= (possiblenextpos left ?x1 ?y1 ?x2 ?y2)
    (movedownright ?x1 ?y1 ?x2 ?y2))
(<= (possiblenextpos left ?x1 ?y1 ?x2 ?y2)
    (moveupleft ?x1 ?y1 ?x2 ?y2))
(<= (possiblenextpos left ?x1 ?y1 ?x2 ?y2)
    (moveright ?x1 ?y1 ?x2 ?y2))
(<= (possiblenextpos left ?x1 ?y1 ?x2 ?y2)
    (moveupright ?x1 ?y1 ?x2 ?y2))
(<= (moveupright ?x ?y1 ?x ?y2)
    (distinct ?x ?y1)
    (nextcoord ?y2 ?y1)
    (coordinate ?x))
(<= (moveright ?x1 ?y ?x2 ?y)
    (distinct ?x1 ?y)
    (nextcoord ?x1 ?x2)
    (coordinate ?y))
(<= (movedownright ?x1 ?y1 ?x2 ?y2)
    (nextcoord ?x1 ?x2)
    (nextcoord ?y1 ?y2))
(<= (movedownleft ?x ?y1 ?x ?y2)
    (nextcoord ?y1 ?y2)
    (coordinate ?x))
(<= (moveleft ?x1 ?y ?x2 ?y)
    (nextcoord ?x2 ?x1)
    (coordinate ?y))
(<= (moveupleft ?x1 ?y1 ?x2 ?y2)
    (nextcoord ?x2 ?x1)
    (nextcoord ?y2 ?y1))
(<= (reorder ?x1 ?y1 ?x2 ?y2 ?x1 ?y1 ?x2 ?y2)
    (nextcoord ?x1 ?x2)
    (coordinate ?y1)
    (coordinate ?y2))
(<= (reorder ?x1 ?y1 ?x2 ?y2 ?x1 ?y1 ?x2 ?y2)
    (nextcoord ?y1 ?y2)
    (coordinate ?x1)
    (coordinate ?x2))
(<= (reorder ?x1 ?y1 ?x2 ?y2 ?x2 ?y2 ?x1 ?y1)
    (not (nextcoord ?x1 ?x2))
    (not (nextcoord ?y1 ?y2))
    (coordinate ?x1)
    (coordinate ?x2)
    (coordinate ?y1)
    (coordinate ?y2))
(nextcoord c1 c2)
(nextcoord c2 c3)
(nextcoord c3 c4)
(nextcoord c4 c5)
(nextcoord c5 c6)
(nextcoord c6 c7)
(nextcoord c7 c8)
(nextcoord c8 c9)
(coordinate c1)
(coordinate c2)
(coordinate c3)
(coordinate c4)
(coordinate c5)
(coordinate c6)
(coordinate c7)
(coordinate c8)
(coordinate c9)
(<= (blocked ?x1 ?y1 ?x2 ?y2)
    (true (wall ?x1 ?y1 ?x2 ?y2)))
(<= (blocked ?x1 ?y1 ?x2 ?y2)
    (true (wall ?x2 ?y2 ?x1 ?y1)))
(succ s0 s1)
(succ s1 s2)
(succ s2 s3)
(succ s3 s4)
(succ s4 s5)
(succ s5 s6)
(succ s6 s7)
(succ s7 s8)
(succ s8 s9)
(succ s9 s10)
(succ s10 s11)
(succ s11 s12)
(succ s12 s13)
(succ s13 s14)
(succ s14 s15)
(succ s15 s16)
(succ s16 s17)
(succ s17 s18)
(succ s18 s19)
(succ s19 s20)
(succ s20 s21)
(succ s21 s22)
(succ s22 s23)
(succ s23 s24)
(succ s24 s25)
(succ s25 s26)
(succ s26 s27)
(succ s27 s28)
(succ s28 s29)
(succ s29 s30)
(succ s30 s31)
(succ s31 s32)
(succ s32 s33)
(succ s33 s34)
(succ s34 s35)
(succ s35 s36)
(succ s36 s37)
(succ s37 s38)
(succ s38 s39)
(succ s39 s40)
(succ s40 s41)
(succ s41 s42)
(succ s42 s43)
(succ s43 s44)
(succ s44 s45)
(succ s45 s46)
(succ s46 s47)
(succ s47 s48)
(succ s48 s49)
(succ s49 s50)
(<= (smaller ?x ?y)
    (succ ?x ?y))
(<= (smaller ?x ?y)
    (succ ?z ?y)
    (smaller ?x ?z))

sees_XML(...) rules

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