(say (define (definer "OppHalf" (rec (pt 0 -34) (pt 52.5 34)) ))) (say (define (definer "OurHalf" (rec (pt -52.5 -34) (pt 0 34)) ))) (say (define (definer "ShootingReg" (rec (pt 40 -18) (pt 52.5 18))))) (say (define (definerule RULE_HOMES direc ((true) (do our {2} (home (pt -12 13))) (do our {5} (home (pt -12 -13))) (do our {3} (home (pt -14.5 0))) (do our {4} (home (pt -10 0))) (do our {6} (home (pt -7.5 0))) (do our {7} (home (pt -4 21.5))) (do our {8} (home (pt -4 -21.5))) (do our {10} (home (pt -2 13))) (do our {11} (home (pt -2 -13))) (do our {9} (home (pt -3 0))) )))) (say (define (definerule RULE_OppHalfPos direc ((and (playm play_on)(bpos "OppHalf") )(do our {2} (pos (((pt ball) * (pt 0 0.4052)) + (pt -10 10.07)) )) (do our {3} (pos (((pt ball) * (pt 0 0.4)) + (pt -12 0)) )) (do our {4} (pos (((pt ball) * (pt 0.46 0.24)) + (pt -8 0)) )) (do our {5} (pos (((pt ball) * (pt 0 0.4052)) + (pt -10 -10.07)) )) (do our {6} (pos (((pt ball) * (pt 0.80 0.41)) + (pt -3 -0.855)) )) (do our {7} (pos (((pt ball) * (pt 0.419 0.24)) + (pt -2 19.345)) )) (do our {8} (pos (((pt ball) * (pt 0.419 0.24)) + (pt -2 -19.345)) )) (do our {9} (pos (((pt ball) * (pt 0.514286 0.323529)) + (pt 13 0)) )) (do our {10} (pos (((pt ball) * (pt 0.623 0.3319)) + (pt 13 15.285)) )) (do our {11} (pos (((pt ball) * (pt 0.623 0.3319)) + (pt 13 -15.285)) ))) ))) (say (define (definerule RULE_OurHalfPos direc ((and (playm play_on)(bpos "OurHalf") ) (do our {4} (pos (((pt ball) * (pt 0.46 0.24)) + (pt -8 0)) )) (do our {6} (pos (((pt ball) * (pt 0.53 0.24)) + (pt 3 0)) )) (do our {7} (pos (((pt ball) * (pt 0.579619 0.2375)) + (pt -2.14 18.495)) )) (do our {8} (pos (((pt ball) * (pt 0.579619 0.2375)) + (pt -2.14 -18.495)) )) (do our {9} (pos (((pt ball) * (pt 0 0.121765)) + (pt 6.7 0)) )) (do our {10} (pos (((pt ball) * (pt 0 0.121765)) + (pt 6.7 13.28)) )) (do our {11} (pos (((pt ball) * (pt 0 0.121765)) + (pt 6.7 -13.28)) ))) ))) (say (define (definerule RULE_POS_2 direc ((and (not (bowner our {1}))(bpos (rec (pt -52.5 -34)(pt 0 34)))) (do our {2} (pos ((pt ball) + (pt -5.0 5.0)))) )))) (say (define (definerule RULE_POS_3 direc ((and (not (bowner our {1}))(bpos (rec (pt -52.5 -34)(pt 0 34)))) (do our {3} (pos ((pt ball) + (pt -5.0 0)))) )))) (say (define (definerule RULE_POS_5 direc ((and (not (bowner our {1}))(bpos (rec (pt -52.5 -34)(pt 0 34)))) (do our {5} (pos ((pt ball) + (pt -5.0 -5.0)))) )))) (say (define (definerule RULE_PASSES direc ((true) (do our {2 3 4 5} (pass {6 7 8 9 10 11})) (do our {6 7 8} (pass {6 9 10 11})) )))) (say (define (definerule RULE_DRBL direc ((and (playm play_on) (bowner our {9 10 11})) (do our {9} (dribble (pt 52.5 0))) (do our {10} (dribble (pt 52.5 7.5))) (do our {11} (dribble (pt 52.5 -7.5))) )))) (say (define (definerule RULE_PASS_9 direc ((and (bowner our {9}) (ppos opp {0} 2 11 (arc (pt our 9) 0 3 0 360))) (do our {9} (pass {6 9 10 11})))))) (say (define (definerule RULE_PASS_A direc ((and (bowner our {10}) (ppos opp {0} 2 11 (arc (pt our 10) 0 3 0 360))) (do our {10} (pass {6 9 10 11})))))) (say (define (definerule RULE_PASS_B direc ((and (bowner our {11}) (ppos opp {0} 2 11 (arc (pt our 11) 0 3 0 360))) (do our {11} (pass {6 9 10 11})))))) (say (define (definerule RULE_SHOOT direc ((and (bowner our {X}) (bpos "ShootingReg")) (do our {X} (shoot)))))) (say (define (definerule RULE_POS1 direc ((bpos (rec (pt -52.5 -20)(pt -36 20))) (do our {1} (pos (pt ball))))))) (say (define (definerule RULE_CYCLE_PASS direc ((true) (do our {7} (pass {10})) (do our {10} (pass {7})) )))) (say (define (definerule RULE_PASS direc ((true) (do our {2 3 4 5 6 8} (pass {0})))))) (say (define (definerule RULE_DRBL_ALL direc ((bowner our {2 3 4 5 6 7 8}) (do our {2 3 4 5 6 7 8} (dribble ((pt 5 0) + (pt ball)) )))))) (say (define (definerule RULE_DONTS direc ((playm gk_our) (dont our {2 3 5} (intercept)) (dont our {2 3 5 6} (pass (rec (pt -52.5 -34)(pt 52.5 34)))) (do our {1} (intercept)) (do our {1} (shoot)) (do our {2} (pos ((pt ball) + (pt -10.0 5.0)))) (do our {3} (pos ((pt ball) + (pt -10.0 0)))) (do our {5} (pos ((pt ball) + (pt -10.0 -5.0)))) )))) (say (rule (on all)))