You are not logged in. login register
Game laikLee_hex
name laikLee_hex
creator admin
number of roles 2
stylesheet chess_like/chess_like_automatic.xsl
GDL v1
matches show matches
statistics show game statistics

Game Description

(role blue)
(role red)

;;;;;;;;        INIT STATE      ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(init (cell 1 1 blank))
(init (cell 1 2 blank))
(init (cell 1 3 blank))
(init (cell 1 4 blank))
(init (cell 1 5 blank))
(init (cell 2 1 blank))
(init (cell 2 2 blank))
(init (cell 2 3 blank))
(init (cell 2 4 blank))
(init (cell 2 5 blank))
(init (cell 3 1 blank))
(init (cell 3 2 blank))
(init (cell 3 3 blank))
(init (cell 3 4 blank))
(init (cell 3 5 blank))
(init (cell 4 1 blank))
(init (cell 4 2 blank))
(init (cell 4 3 blank))
(init (cell 4 4 blank))
(init (cell 4 5 blank))
(init (cell 5 1 blank))
(init (cell 5 2 blank))
(init (cell 5 3 blank))
(init (cell 5 4 blank))
(init (cell 5 5 blank))
(init (control blue))

;;;;;;;;        COMMON HELPER PREDICATES         ;;;;;;;;;;;;;;;;;;;;;;

(equals 1 1)
(equals 2 2)
(equals 3 3)
(equals 4 4)
(equals 5 5)

(successor 1 2)
(successor 2 3)
(successor 3 4)
(successor 4 5)

(id 1 1 el11)
(id 1 2 el12)
(id 1 3 el13)
(id 1 4 el14)
(id 1 5 el15)
(id 2 1 el21)
(id 2 2 el22)
(id 2 3 el23)
(id 2 4 el24)
(id 2 5 el25)
(id 3 1 el31)
(id 3 2 el32)
(id 3 3 el33)
(id 3 4 el34)
(id 3 5 el35)
(id 4 1 el41)
(id 4 2 el42)
(id 4 3 el43)
(id 4 4 el44)
(id 4 5 el45)
(id 5 1 el51)
(id 5 2 el52)
(id 5 3 el53)
(id 5 4 el54)
(id 5 5 el55)

(le el11)
(le el12)
(le el13)
(le el14)
(le el15)
(le el21)
(le el22)
(le el23)
(le el24)
(le el25)
(le el31)
(le el32)
(le el33)
(le el34)
(le el35)
(le el41)
(le el42)
(le el43)
(le el44)
(le el45)
(le el51)
(le el52)
(le el53)
(le el54)
(le el55)

;;;;;;;;        LEGAL MOVES       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(<= (legal ?player (mark ?x ?y))
    (true (control ?player))
    (true (cell ?x ?y blank)))

(<= (legal blue noop)
    (true (control red)))

(<= (legal red noop)
    (true (control blue)))

;;;;;;;;        NEXT STATE      ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(<= (next (control blue))
    (true (control red)))

(<= (next (control red))
    (true (control blue)))

(<= (next (cell ?x ?y ?player))
    (does ?player (mark ?x ?y))
    (true (cell ?x ?y blank)))

(<= (next (cell ?x ?y ?color))
    (true (cell ?x ?y ?color))
    (distinct ?color blank))

(<= (next (cell ?x ?y blank))
    (does ?player (mark ?j ?k))
    (true (cell ?x ?y blank))
    (or (distinct ?x ?j) (distinct ?y ?k)))

;;;;;;;;        GOAL, TERMINATE AND HELP PREDICATES      ;;;;;;;;;;;;;;
(<= (neighbour ?x1 ?y1 ?x2 ?y2)
    (equals ?y1 ?y2)
    (or (successor ?x2 ?x1) (successor ?x1 ?x2)))

(<= (neighbour ?x1 ?y1 ?x2 ?y2)
    (successor ?y1 ?y2)
    (or (equals ?x1 ?x2) (successor ?x1 ?x2)))

(<= (neighbour ?x1 ?y1 ?x2 ?y2)
    (successor ?y2 ?y1)
    (or (equals ?x1 ?x2) (successor ?x2 ?x1)))
(<= (color_neighbour ?x1 ?y1 ?x2 ?y2 ?color)
    (neighbour ?x1 ?y1 ?x2 ?y2)
    (true (cell ?x2 ?y2 ?color)))

(<= (connection ?x1 ?y1 ?x2 ?y2 ?color ?list)
    (id ?x1 ?y1 ?id)
    (append_el ?id ?list ?list2)    
    (connection2 ?x1 ?y1 ?x2 ?y2 ?color ?list2))

(<= (connection2 ?x1 ?y1 ?x2 ?y2 ?color ?list)
    (color_neighbour ?x1 ?y1 ?x2 ?y2 ?color)
    (isList ?list))    
(<= (connection2  ?x1 ?y1 ?x2 ?y2 ?color ?list)
    (color_neighbour ?x1 ?y1 ?x3 ?y3 ?color)    
    (connection ?x3 ?y3 ?x2 ?y2 ?color ?list)
    (isList ?list))

(<= (line red)
    (true (cell 1 ?y1 red)) 
    (connection 1 ?y1 5 ?y2 red nil))

(<= (line blue)
    (true (cell ?x1 1 blue))
    (connection ?x1 1 ?x2 5 blue nil))

(<= (goal ?player 100)
    (line ?player))
(<= (goal red 0)
    (line blue))
(<= (goal blue 0)
    (line red))

(<= terminal
	(line red))
(<= terminal
	(line blue))

;;;;;;;;        LIST DEFINITION AND OPERATIONS      ;;;;;;;;;;;;;;;;;;;
;append with double check, comparable with a set 
(<= (append_el ?el nil (list ?el nil))
    (le ?el))

(<= (append_el ?el (list ?head ?tail) (list ?head ?newtail))
    (le ?head)
    (le ?el)
    (distinct ?el ?head)
    (isList ?tail)
    (append_el ?el ?tail ?newtail)
    (isList ?newtail))

(isList nil)

(<= (isList (list ?el1 nil))
    (le ?el1))
(<= (isList (list ?el1 (list ?el2 nil)))
    (le ?el1)(le ?el2))
(<= (isList (list ?el1 (list ?el2 (list ?el3 nil))))
    (le ?el1)(le ?el2)(le ?el3))
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 nil)))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4))
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 (list ?el5 nil))))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4)(le ?el5))
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 (list ?el5 (list ?el6 nil)))))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4)(le ?el5)(le ?el6))
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 (list ?el5 (list ?el6 (list ?el7 nil))))))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4)(le ?el5)(le ?el6)(le ?el7))
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 (list ?el5 (list ?el6 (list ?el7 (list ?el8 nil)))))))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4)(le ?el5)(le ?el6)(le ?el7)(le ?el8))
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 (list ?el5 (list ?el6 (list ?el7 (list ?el8 (list ?el9 nil))))))))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4)(le ?el5)(le ?el6)(le ?el7)(le ?el8)(le ?el9))
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 (list ?el5 (list ?el6 (list ?el7 (list ?el8 (list ?el9 (list ?el10 nil)))))))))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4)(le ?el5)(le ?el6)(le ?el7)(le ?el8)(le ?el9)(le ?el10))
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 (list ?el5 (list ?el6 (list ?el7 (list ?el8 (list ?el9 (list ?el10 (list ?el11 nil))))))))))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4)(le ?el5)(le ?el6)(le ?el7)(le ?el8)(le ?el9)(le ?el10)(le ?el11))    
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 (list ?el5 (list ?el6 (list ?el7 (list ?el8 (list ?el9 (list ?el10 (list ?el11 (list ?el12 nil)))))))))))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4)(le ?el5)(le ?el6)(le ?el7)(le ?el8)(le ?el9)(le ?el10)(le ?el11)(le ?el12))
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 (list ?el5 (list ?el6 (list ?el7 (list ?el8 (list ?el9 (list ?el10 (list ?el11 (list ?el12 (list ?el13 nil))))))))))))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4)(le ?el5)(le ?el6)(le ?el7)(le ?el8)(le ?el9)(le ?el10)(le ?el11)(le ?el12)(le ?el13))
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 (list ?el5 (list ?el6 (list ?el7 (list ?el8 (list ?el9 (list ?el10 (list ?el11 (list ?el12 (list ?el13 (list ?el14 nil)))))))))))))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4)(le ?el5)(le ?el6)(le ?el7)(le ?el8)(le ?el9)(le ?el10)(le ?el11)(le ?el12)(le ?el13)(le ?el14))    
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 (list ?el5 (list ?el6 (list ?el7 (list ?el8 (list ?el9 (list ?el10 (list ?el11 (list ?el12 (list ?el13 (list ?el14 (list ?el15 nil))))))))))))))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4)(le ?el5)(le ?el6)(le ?el7)(le ?el8)(le ?el9)(le ?el10)(le ?el11)(le ?el12)(le ?el13)(le ?el14)(le ?el15))
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 (list ?el5 (list ?el6 (list ?el7 (list ?el8 (list ?el9 (list ?el10 (list ?el11 (list ?el12 (list ?el13 (list ?el14 (list ?el15 (list ?el16 nil)))))))))))))))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4)(le ?el5)(le ?el6)(le ?el7)(le ?el8)(le ?el9)(le ?el10)(le ?el11)(le ?el12)(le ?el13)(le ?el14)(le ?el15)(le ?el16))
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 (list ?el5 (list ?el6 (list ?el7 (list ?el8 (list ?el9 (list ?el10 (list ?el11 (list ?el12 (list ?el13 (list ?el14 (list ?el15 (list ?el16 (list ?el17 nil))))))))))))))))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4)(le ?el5)(le ?el6)(le ?el7)(le ?el8)(le ?el9)(le ?el10)(le ?el11)(le ?el12)(le ?el13)(le ?el14)(le ?el15)(le ?el16)(le ?el17))
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 (list ?el5 (list ?el6 (list ?el7 (list ?el8 (list ?el9 (list ?el10 (list ?el11 (list ?el12 (list ?el13 (list ?el14 (list ?el15 (list ?el16 (list ?el17 (list ?el18 nil)))))))))))))))))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4)(le ?el5)(le ?el6)(le ?el7)(le ?el8)(le ?el9)(le ?el10)(le ?el11)(le ?el12)(le ?el13)(le ?el14)(le ?el15)(le ?el16)(le ?el17)(le ?el18))
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 (list ?el5 (list ?el6 (list ?el7 (list ?el8 (list ?el9 (list ?el10 (list ?el11 (list ?el12 (list ?el13 (list ?el14 (list ?el15 (list ?el16 (list ?el17 (list ?el18 (list ?el19 nil))))))))))))))))))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4)(le ?el5)(le ?el6)(le ?el7)(le ?el8)(le ?el9)(le ?el10)(le ?el11)(le ?el12)(le ?el13)(le ?el14)(le ?el15)(le ?el16)(le ?el17)(le ?el18)(le ?el19))
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 (list ?el5 (list ?el6 (list ?el7 (list ?el8 (list ?el9 (list ?el10 (list ?el11 (list ?el12 (list ?el13 (list ?el14 (list ?el15 (list ?el16 (list ?el17 (list ?el18 (list ?el19 (list ?el20 nil)))))))))))))))))))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4)(le ?el5)(le ?el6)(le ?el7)(le ?el8)(le ?el9)(le ?el10)(le ?el11)(le ?el12)(le ?el13)(le ?el14)(le ?el15)(le ?el16)(le ?el17)(le ?el18)(le ?el19)(le ?el20))
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 (list ?el5 (list ?el6 (list ?el7 (list ?el8 (list ?el9 (list ?el10 (list ?el11 (list ?el12 (list ?el13 (list ?el14 (list ?el15 (list ?el16 (list ?el17 (list ?el18 (list ?el19 (list ?el20 (list ?el21 nil))))))))))))))))))))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4)(le ?el5)(le ?el6)(le ?el7)(le ?el8)(le ?el9)(le ?el10)(le ?el11)(le ?el12)(le ?el13)(le ?el14)(le ?el15)(le ?el16)(le ?el17)(le ?el18)(le ?el19)(le ?el20)(le ?el21))
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 (list ?el5 (list ?el6 (list ?el7 (list ?el8 (list ?el9 (list ?el10 (list ?el11 (list ?el12 (list ?el13 (list ?el14 (list ?el15 (list ?el16 (list ?el17 (list ?el18 (list ?el19 (list ?el20 (list ?el21 (list ?el22 nil)))))))))))))))))))))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4)(le ?el5)(le ?el6)(le ?el7)(le ?el8)(le ?el9)(le ?el10)(le ?el11)(le ?el12)(le ?el13)(le ?el14)(le ?el15)(le ?el16)(le ?el17)(le ?el18)(le ?el19)(le ?el20)(le ?el21)(le ?el22))
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 (list ?el5 (list ?el6 (list ?el7 (list ?el8 (list ?el9 (list ?el10 (list ?el11 (list ?el12 (list ?el13 (list ?el14 (list ?el15 (list ?el16 (list ?el17 (list ?el18 (list ?el19 (list ?el20 (list ?el21 (list ?el22 (list ?el23 nil))))))))))))))))))))))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4)(le ?el5)(le ?el6)(le ?el7)(le ?el8)(le ?el9)(le ?el10)(le ?el11)(le ?el12)(le ?el13)(le ?el14)(le ?el15)(le ?el16)(le ?el17)(le ?el18)(le ?el19)(le ?el20)(le ?el21)(le ?el22)(le ?el23))
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 (list ?el5 (list ?el6 (list ?el7 (list ?el8 (list ?el9 (list ?el10 (list ?el11 (list ?el12 (list ?el13 (list ?el14 (list ?el15 (list ?el16 (list ?el17 (list ?el18 (list ?el19 (list ?el20 (list ?el21 (list ?el22 (list ?el23 (list ?el24 nil)))))))))))))))))))))))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4)(le ?el5)(le ?el6)(le ?el7)(le ?el8)(le ?el9)(le ?el10)(le ?el11)(le ?el12)(le ?el13)(le ?el14)(le ?el15)(le ?el16)(le ?el17)(le ?el18)(le ?el19)(le ?el20)(le ?el21)(le ?el22)(le ?el23)(le ?el24))
(<= (isList (list ?el1 (list ?el2 (list ?el3 (list ?el4 (list ?el5 (list ?el6 (list ?el7 (list ?el8 (list ?el9 (list ?el10 (list ?el11 (list ?el12 (list ?el13 (list ?el14 (list ?el15 (list ?el16 (list ?el17 (list ?el18 (list ?el19 (list ?el20 (list ?el21 (list ?el22 (list ?el23 (list ?el24 (list ?el25 nil))))))))))))))))))))))))))
    (le ?el1)(le ?el2)(le ?el3)(le ?el4)(le ?el5)(le ?el6)(le ?el7)(le ?el8)(le ?el9)(le ?el10)(le ?el11)(le ?el12)(le ?el13)(le ?el14)(le ?el15)(le ?el16)(le ?el17)(le ?el18)(le ?el19)(le ?el20)(le ?el21)(le ?el22)(le ?el23)(le ?el24)(le ?el25))

sees_XML(...) rules

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