gdl/roshambo2.gdl @ 6ff8b64f6041

Start sketching out the actual reasoning logic
author Steve Losh <steve@stevelosh.com>
date Sun, 11 Dec 2016 16:25:09 -0500
parents 90dd275f6e81
children (none)
(role white)
(role black)
(init (step s1))
(init (beaten white s0))
(init (beaten black s0))
(<= (next (beaten ?player ?n1))
    (does ?player ?throw)
    (does ?player2 ?throw2)
    (distinct ?player2 ?player)
    (beats ?throw ?throw2)
    (true (beaten ?player ?n))
    (succ ?n ?n1))
(<= (next (beaten ?player ?n))
    (does ?player ?throw)
    (does ?player2 ?throw2)
    (distinct ?player2 ?player)
    (not (beats ?throw ?throw2))
    (true (beaten ?player ?n)))
(<= (next (step ?y))
    (true (step ?x))
    (succ ?x ?y))
(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)
(<= (gt ?x ?y)
    (succ ?y ?x))
(<= (gt ?x ?y)
    (succ ?z ?x)
    (gt ?z ?y))
(<= (legal ?role rock)
    (role ?role))
(<= (legal ?role paper)
    (role ?role))
(<= (legal ?role scissors)
    (role ?role))
(<= (legal ?role well)
    (role ?role))
(beats rock scissors)
(beats paper rock)
(beats paper well)
(beats scissors paper)
(beats well scissors)
(beats well rock)
(<= (goal ?r1 100)
    (true (beaten ?r1 ?n1))
    (true (beaten ?r2 ?n2))
    (gt ?n1 ?n2))
(<= (goal ?r2 0)
    (true (beaten ?r1 ?n1))
    (true (beaten ?r2 ?n2))
    (gt ?n1 ?n2))
(<= (goal ?r 50)
    (true (beaten white ?n))
    (true (beaten black ?n))
    (role ?r))
(<= terminal
    (true (beaten ?r s5)))
(<= terminal
    (true (step s10)))