(role robot1)
(role robot2)
(role robot3)
(role robot4)
(team robot1 a)
(team robot2 a)
(team robot3 b)
(team robot4 b)
(init (moveCount 0))
(init (cell 1 10 knight1))
(init (cell 5 10 knight2))
(init (cell 1 1 knight3))
(init (cell 5 1 knight4))
(init (cell 3 10 flag1))
(init (cell 3 1 flag4))
(base (moveCount 0))
(<= (base (moveCount ?M)) (add 1 count ?N ?M))
(<= (base (cell ?M ?N ?P)) (col ?M) (row ?N) (piece ?P))
(<= (base (cell ?M ?N ?P)) (col ?M) (row ?N) (flag ?P))
(piece knight1)
(piece knight2)
(piece knight3)
(piece knight4)
(flag flag1)
(flag flag4)
(owns knight1 robot1)
(owns knight2 robot2)
(owns knight3 robot3)
(owns knight4 robot4)
(owns flag1 b)
(owns flag4 a)
(<= (input ?R (move ?X1 ?Y1 ?X2 ?Y2)) (role ?R) (col ?X1) (row ?Y1) (knightMove ?X1 ?Y1 ?X2 ?Y2))
(<= (input ?R noop) (role ?R))
(<= (legal ?R (move ?X1 ?Y1 ?X2 ?Y2)) (owns ?K ?R) (true (cell ?X1 ?Y1 ?K)) (knightMove ?X1 ?Y1 ?X2 ?Y2))
(<= (legal ?R noop) (owns ?K ?R) (true (cell ?X1 ?Y1 ?K)) (true (cell ?X2 ?Y2 ?F)) (distinct ?X1 ?X2) (distinct ?Y1 ?Y2))
(<= (next (moveCount ?NewCount)) (true (moveCount ?OldCount)) (add 1 count ?OldCount ?NewCount))
(<= (nextmove (cell ?X2 ?Y2 ?K)) (piece ?K) (owns ?K ?R) (does ?R (move ?X1 ?Y1 ?X2 ?Y2)))
(<= (nextmove (cell ?X ?Y ?K)) (piece ?K) (owns ?K ?R) (does ?R noop) (true (cell ?X ?Y ?K)))
(<= (nextmove (cell ?X2 ?Y2 ?F)) (flag ?F) (owns ?F ?T) (team ?R ?T) (does ?R (move ?X1 ?Y1 ?X2 ?Y2)) (true (cell ?X1 ?Y1 ?F)))
(<= (next (cell ?X ?Y ?F)) (flag ?F) (row ?Y2) (col ?X2) (not (nextmove (cell ?X2 ?Y2 ?F))) (true (cell ?X ?Y ?F)))
(<= (next (cell ?X2 ?Y2 ?P)) (nextmove (cell ?X2 ?Y2 ?P)) (not (captured ?P)))
(<= (next (cell ?X ?Y ?P)) (init (cell ?X ?Y ?P)) (captured ?P))
(<= (captured ?F) (flag ?F) (team ?R ?T) (not (owns ?F ?T)) (owns ?K ?R) (nextmove (cell ?X ?Y ?F)) (nextmove (cell ?X ?Y ?K)))
(<= (captured ?K) (piece ?K) (owns ?K ?R) (team ?R a) (team ?R2 b) (owns ?K2 ?R2) (nextmove (cell ?X ?Y ?K)) (nextmove (cell ?X ?Y ?K2)) (left ?Y) (flag ?F) (owns ?F b) (not (nextmove (cell ?X ?Y ?F))))
(<= (captured ?K) (piece ?K) (owns ?K ?R) (team ?R b) (team ?R2 a) (owns ?K2 ?R2) (nextmove (cell ?X ?Y ?K)) (nextmove (cell ?X ?Y ?K2)) (right ?Y) (flag ?F) (owns ?F a) (not (nextmove (cell ?X ?Y ?F))))
(<= (captured ?K) (piece ?K) (flag ?F) (team ?R ?T) (owns ?F ?T) (owns ?K ?R) (piece ?K2) (owns ?K2 ?R2) (not (team ?R2 ?T)) (nextmove (cell ?X ?Y ?K)) (nextmove (cell ?X ?Y ?F)) (nextmove (cell ?X ?Y ?K2)))
(<= (flagcap a) (true (cell ?X 10 ?F)) (owns ?F a))
(<= (flagcap b) (true (cell ?X 1 ?F)) (owns ?F b))
(<= (goal ?R 100) (role ?R) (team ?R a) (flagcap a) (not (flagcap b)))
(<= (goal ?R 0) (role ?R) (team ?R b) (flagcap a) (not (flagcap b)))
(<= (goal ?R 100) (role ?R) (team ?R b) (flagcap b) (not (flagcap a)))
(<= (goal ?R 0) (role ?R) (team ?R a) (flagcap b) (not (flagcap a)))
(<= (goal ?R 75) (role ?R) (flagcap a) (flagcap b))
(<= (goal ?R 50) (role ?R) expired)
(<= terminal expired)
(<= terminal (flagcap ?T))
(<= (knightMove ?X1 ?Y1 ?X2 ?Y2) (add 1 x ?X1 ?X2) (add 2 y ?Y1 ?Y2))
(<= (knightMove ?X1 ?Y1 ?X2 ?Y2) (add 1 x ?X1 ?X2) (add 2 y ?Y2 ?Y1))
(<= (knightMove ?X1 ?Y1 ?X2 ?Y2) (add 1 x ?X2 ?X1) (add 2 y ?Y1 ?Y2))
(<= (knightMove ?X1 ?Y1 ?X2 ?Y2) (add 1 x ?X2 ?X1) (add 2 y ?Y2 ?Y1))
(<= (knightMove ?X1 ?Y1 ?X2 ?Y2) (add 2 x ?X1 ?X2) (add 1 y ?Y1 ?Y2))
(<= (knightMove ?X1 ?Y1 ?X2 ?Y2) (add 2 x ?X1 ?X2) (add 1 y ?Y2 ?Y1))
(<= (knightMove ?X1 ?Y1 ?X2 ?Y2) (add 2 x ?X2 ?X1) (add 1 y ?Y1 ?Y2))
(<= (knightMove ?X1 ?Y1 ?X2 ?Y2) (add 2 x ?X2 ?X1) (add 1 y ?Y2 ?Y1))
(add 1 count 0 1)
(add 1 count 1 2)
(add 1 count 2 3)
(add 1 count 3 4)
(add 1 count 4 5)
(add 1 count 5 6)
(add 1 count 6 7)
(add 1 count 7 8)
(add 1 count 8 9)
(add 1 count 9 10)
(add 1 count 10 11)
(add 1 count 11 12)
(add 1 count 12 13)
(add 1 count 13 14)
(add 1 count 14 15)
(add 1 count 15 16)
(add 1 count 16 17)
(add 1 count 17 18)
(add 1 count 18 19)
(add 1 count 19 20)
(add 1 count 20 21)
(add 1 count 21 22)
(add 1 count 22 23)
(add 1 count 23 24)
(add 1 count 24 25)
(add 1 count 25 26)
(add 1 count 26 27)
(add 1 count 27 28)
(add 1 count 28 29)
(add 1 count 29 30)
(<= expired (true (moveCount 30)))
(add 1 x 1 2)
(add 1 x 2 3)
(add 1 x 3 4)
(add 1 x 4 5)
(add 1 y 1 2)
(add 1 y 2 3)
(add 1 y 3 4)
(add 1 y 4 5)
(add 1 y 5 6)
(add 1 y 6 7)
(add 1 y 7 8)
(add 1 y 8 9)
(add 1 y 9 10)
(add 2 x 1 3)
(add 2 x 2 4)
(add 2 x 3 5)
(add 2 y 1 3)
(add 2 y 2 4)
(add 2 y 3 5)
(add 2 y 4 6)
(add 2 y 5 7)
(add 2 y 6 8)
(add 2 y 7 9)
(add 2 y 8 10)
(left 1)
(left 2)
(left 3)
(left 4)
(left 5)
(right 6)
(right 7)
(right 8)
(right 9)
(right 10)
(row 1)
(row 2)
(row 3)
(row 4)
(row 5)
(row 6)
(row 7)
(row 8)
(row 9)
(row 10)
(col 1)
(col 2)
(col 3)
(col 4)
(col 5)
