(role yellow)
(role red)
;;;;;;;;;;;;;;
(init (control yellow))
(init (cubes yellow 28))
(init (cubes red 28))
(init (cube 0 0 0 base))
(init (cube 1 0 0 base))
(init (cube 1 1 0 base))
(init (cube 2 0 0 base))
(init (cube 2 1 0 base))
(init (cube 2 2 0 base))
(init (cube 3 0 0 base))
(init (cube 3 1 0 base))
(init (cube 3 2 0 base))
(init (cube 3 3 0 base))
(init (cube 4 0 0 base))
(init (cube 4 1 0 base))
(init (cube 4 2 0 base))
(init (cube 4 3 0 base))
(init (cube 4 4 0 base))
(init (cube 5 0 0 base))
(init (cube 5 1 0 base))
(init (cube 5 2 0 base))
(init (cube 5 3 0 base))
(init (cube 5 4 0 base))
(init (cube 5 5 0 base))
(init (cube 6 0 0 base))
(init (cube 6 1 0 base))
(init (cube 6 2 0 base))
(init (cube 6 3 0 base))
(init (cube 6 4 0 base))
(init (cube 6 5 0 base))
(init (cube 6 6 0 base))
(lastcube 6 6 6)
;;;;;;;;;;;;;;
(<= (legal ?player (put ?x ?y ?z))
(true (control ?player))
(opponent ?player ?opponent)
(open_cubicup ?opponent ?x ?y ?z))
(<= (legal ?player (put ?x ?y ?z))
(true (control ?player))
(opponent ?player ?opponent)
(not (any_open_cubicup ?opponent))
(filled ?xp ?yp ?zp)
(succ ?xp ?x)
(filled ?x ?yp ?zp)
(succ ?yp ?y)
(filled ?x ?y ?zp)
(succ ?zp ?z)
(not (filled ?x ?y ?z)))
(<= (legal ?player noop)
(opponent ?player ?opponent)
(true (control ?opponent)))
;;;;;;;;;;;;;;
(<= (cubicup ?player ?x ?y ?z)
(true (cube ?xp ?yp ?zp ?player))
(succ ?xp ?x)
(true (cube ?x ?yp ?zp ?player))
(succ ?yp ?y)
(true (cube ?x ?y ?zp ?player))
(succ ?zp ?z))
(<= (open_cubicup ?player ?x ?y ?z)
(cubicup ?player ?x ?y ?z)
(not (filled ?x ?y ?z)))
(<= (any_open_cubicup ?player)
(open_cubicup ?player ?x ?y ?z))
;;;;;;;;;;;;;;
(<= (next (control ?opponent))
(true (control ?player))
(opponent ?player ?opponent)
(not (any_open_cubicup ?opponent))
(not (true (cubes ?opponent 0))))
(<= (next (control ?player))
(true (control ?player))
(opponent ?player ?opponent)
(true (cubes ?opponent 0)))
(<= (next (control ?player))
(true (control ?player))
(opponent ?player ?opponent)
(any_open_cubicup ?opponent))
;;;;;;;;;;;;;;
(<= (next (cube ?x ?y ?z ?color))
(true (cube ?x ?y ?z ?color)))
(<= (next (cube ?x ?y ?z ?player))
(does ?player (put ?x ?y ?z)))
;;;;;;;;;;;;;;
(<= (next (cubes ?player ?n))
(true (cubes ?player ?n))
(not (true (control ?player))))
(<= (next (cubes ?player ?n))
(true (cubes ?player ?n1))
(true (control ?player))
(succ ?n ?n1))
;;;;;;;;;;;;;;;
(<= (goal ?player 100)
(lastcube ?x ?y ?z)
(true (cube ?x ?y ?z ?player))
(opponent ?player ?player2)
(not (cubicup ?player2 ?x ?y ?z)))
(<= (goal ?w 50)
(role ?w)
(lastcube ?x ?y ?z)
(true (cube ?x ?y ?z ?player1))
(opponent ?player1 ?player2)
(cubicup ?player2 ?x ?y ?z))
(<= (goal ?player2 0)
(lastcube ?x ?y ?z)
(true (cube ?x ?y ?z ?player))
(opponent ?player ?player2)
(not (cubicup ?player2 ?x ?y ?z)))
(<= terminal
(lastcube ?x ?y ?z)
(filled ?x ?y ?z))
;;;;;;;;;;;;;;;
(<= (filled ?x ?y ?z)
(true (cube ?x ?y ?z ?color)))
;;;;;;;;;;;;;;;
(opponent yellow red)
(opponent red yellow)
(succ 0 1)
(succ 1 2)
(succ 2 3)
(succ 3 4)
(succ 4 5)
(succ 5 6)
(succ 6 7)
(succ 7 8)
(succ 8 9)
(succ 9 10)
(succ 10 11)
(succ 11 12)
(succ 12 13)
(succ 13 14)
(succ 14 15)
(succ 15 16)
(succ 16 17)
(succ 17 18)
(succ 18 19)
(succ 19 20)
(succ 20 21)
(succ 21 22)
(succ 22 23)
(succ 23 24)
(succ 24 25)
(succ 25 26)
(succ 26 27)
(succ 27 28)