# ================================================================ # # lesson: how to create state machines in CFDG; please note that # a number of dominoes have one color, then comes a color # change at once and again, the dominoes continue to have the # same color for a while, ending with a given probability; # curves turning right and left follow the same strategy # ================================================================ #
startshape CQUEUE
background{hue -60 sat .25 b -.75}
rule CQUEUE 6{
CQUEUE{hue 60}
} rule CQUEUE 6{
CQUEUE{hue -60}
} rule CQUEUE 1{
QUEUE{}
}
rule QUEUE{
LQUEUE{}
} rule QUEUE{
RQUEUE{}
}
rule LQUEUE .2{} //end
rule LQUEUE 1{ CQUEUE{} //state change }
rule LQUEUE 10{ FALLENDOMINO{} LQUEUE{x 2 z 1 r 3} }
rule LQUEUE 100{ LQUEUE{x -.05} }
rule RQUEUE .2{} //end
rule RQUEUE 1{ CQUEUE{} //state change }
rule RQUEUE 10{ FALLENDOMINO{} RQUEUE{x 2 z 1 r -3} }
rule RQUEUE 100{ RQUEUE{x -.05} }
rule FALLENDOMINO{ DOMINO{r -6 sat .8 b .7} }
rule DOMINO{ SQUARE{s .1 1 skew 0 -4 x -1.05 y .035 b -.1} SQUARE{s 2 .075 skew -3 0 x -.05 y 0.535 b -.3} SQUARE{s 2 1 b -.2} NUM{z .1 s .9 x -.5} NUM{z .1 s .9 x .5} }
//nine rule NUM{ SQUARE{b .2} CIRCLE{x -.3 y -.3 b -1 s .2} CIRCLE{y -.3 b -1 s .2} CIRCLE{x .3 y -.3 b -1 s .2} CIRCLE{x -.3 b -1 s .2} CIRCLE{b -1 s .2} CIRCLE{x .3 b -1 s .2} CIRCLE{x -.3 y .3 b -1 s .2} CIRCLE{y .3 b -1 s .2} CIRCLE{x .3 y .3 b -1 s .2} }
//eight rule NUM{ SQUARE{b .2} CIRCLE{x -.3 y -.3 b -1 s .2} CIRCLE{y -.3 b -1 s .2} CIRCLE{x .3 y -.3 b -1 s .2} CIRCLE{x -.3 b -1 s .2} CIRCLE{x .3 b -1 s .2} CIRCLE{x -.3 y .3 b -1 s .2} CIRCLE{y .3 b -1 s .2} CIRCLE{x .3 y .3 b -1 s .2} }
//seven rule NUM{ SQUARE{b .2} CIRCLE{x -.3 y -.3 b -1 s .2} CIRCLE{y -.3 b -1 s .2} CIRCLE{x .3 y -.3 b -1 s .2} CIRCLE{b -1 s .2} CIRCLE{x -.3 y .3 b -1 s .2} CIRCLE{y .3 b -1 s .2} CIRCLE{x .3 y .3 b -1 s .2} }
//six rule NUM{ SQUARE{b .2} CIRCLE{x -.3 y -.3 b -1 s .2} CIRCLE{y -.3 b -1 s .2} CIRCLE{x .3 y -.3 b -1 s .2} CIRCLE{x -.3 y .3 b -1 s .2} CIRCLE{y .3 b -1 s .2} CIRCLE{x .3 y .3 b -1 s .2} }
//five rule NUM{ SQUARE{b .2} CIRCLE{x -.3 y -.3 b -1 s .2} CIRCLE{x .3 y -.3 b -1 s .2} CIRCLE{b -1 s .2} CIRCLE{x -.3 y .3 b -1 s .2} CIRCLE{x .3 y .3 b -1 s .2} }
//four rule NUM{ SQUARE{b .2} CIRCLE{x -.3 y -.3 b -1 s .2} CIRCLE{x .3 y -.3 b -1 s .2} CIRCLE{x -.3 y .3 b -1 s .2} CIRCLE{x .3 y .3 b -1 s .2} }
//three rule NUM{
SQUARE{b .2} CIRCLE{x .3 y -.3 b -1 s .2} CIRCLE{b -1 s .2} CIRCLE{x -.3 y .3 b -1 s .2}
}
# two rule NUM{
SQUARE{b .2} CIRCLE{x .3 y -.3 b -1 s .2} CIRCLE{x -.3 y .3 b -1 s .2}
}
# one rule NUM{
SQUARE{b .2} CIRCLE{b -1 s .2}
}
//zero rule NUM{
SQUARE{b .2}
}