# pattern.clang # Coachable Used: Caspian # Description: All players get position with ball # and when each other is ball owner # do itself predifined action # players 2 3 4 5 6 7 8 9 pass to 10 11 # players 10 11 don't shoot, pass and do dribble # Goalie Positionings (say (define (definerule Goalie1 direc((bpos (rec (pt -53 -35)(pt -35 35))) (do our {1}(pos ((pt -50 0)+((pt ball)*(pt 0.1 0.25))))) )))) (say (define (definerule Goalie2 direc((bpos (rec (pt -35 -35)(pt 53 35))) (do our {1}(pos (((pt our 1)*(pt 1 0))+((pt ball)*(pt 0.2 0.25))))) )))) # Home Positionings (say (define (definerule Agent02_home direc((playm play_on) (do our {2}(home (pt -20 5))) )))) (say (define (definerule Agent03_home direc((playm play_on) (do our {3}(home (pt -20 -5))) )))) (say (define (definerule Agent04_home direc((playm play_on) (do our {4}(home (pt -20 15))) )))) (say (define (definerule Agent05_home direc((playm play_on) (do our {5}(home (pt -20 -15))) )))) (say (define (definerule Agent06_home direc((playm play_on) (do our {6}(home (pt -10 0))) )))) (say (define (definerule Agent07_home direc((playm play_on) (do our {7}(home (pt -10 -10))) )))) (say (define (definerule Agent08_home direc((playm play_on) (do our {8}(home (pt -10 10))) )))) (say (define (definerule Agent09_home direc((playm play_on) (do our {9}(home (pt -5 0))) )))) (say (define (definerule Agent10_home direc((playm play_on) (do our {10}(home (pt -5 10))) )))) (say (define (definerule Agent11_home direc((playm play_on) (do our {11}(home (pt -5 -10))) )))) # Overall Behavior in Our Half (say (define (definerule Agent02_1 direc((bpos (rec (pt -53 -35)(pt 0 35))) (do our {2}(pos((pt -30 5)+(pt ball)*(pt 0 0.3)))) )))) (say (define (definerule Agent03_1 direc((bpos (rec (pt -53 -35)(pt 0 35))) (do our {3}(pos((pt -30 -5)+(pt ball)*(pt 0 0.3)))) )))) (say (define (definerule Agent04_1 direc((bpos (rec (pt -53 -35)(pt 0 35))) (do our {4}(pos((pt -30 15)+(pt ball)*(pt 0 0.3)))) )))) (say (define (definerule Agent05_1 direc((bpos (rec (pt -53 -35)(pt 0 35))) (do our {5}(pos((pt -30 -15)+(pt ball)*(pt 0 0.3)))) )))) (say (define (definerule Agent06_1 direc((bpos (rec (pt -53 -35)(pt 0 35))) (do our {6}(pos((pt -20 0)+(pt ball)*(pt 0 0.3)))) )))) (say (define (definerule Agent07_1 direc((bpos (rec (pt -53 -35)(pt 0 35))) (do our {7}(pos((pt -20 -10)+(pt ball)*(pt 0 0.3)))) )))) (say (define (definerule Agent08_1 direc((bpos (rec (pt -53 -35)(pt 0 35))) (do our {8}(pos((pt -20 10)+(pt ball)*(pt 0 0.3)))) )))) (say (define (definerule Agent09_1 direc((bpos (rec (pt -53 -35)(pt 0 35))) (do our {9}(pos((pt 0 0)+(pt ball)*(pt 0 0.3)))) )))) (say (define (definerule Agent10_1 direc((bpos (rec (pt -53 -35)(pt 0 35))) (do our {10}(pos((pt -10 12)+(pt ball)*(pt 0 0.3)))) )))) (say (define (definerule Agent11_1 direc((bpos (rec (pt -53 -35)(pt 0 35))) (do our {11}(pos((pt -10 -12)+(pt ball)*(pt 0 0.3)))) )))) # Overall Behavior in Opponent Half (say (define (definerule Agent02_2 direc((bpos (rec (pt 53 -35)(pt 0 35))) (do our {2}(pos((pt -20 5)+(pt ball)*(pt 0 0.3)))) )))) (say (define (definerule Agent03_2 direc((bpos (rec (pt 53 -35)(pt 0 35))) (do our {3}(pos((pt -20 -5)+(pt ball)*(pt 0 0.3)))) )))) (say (define (definerule Agent04_2 direc((bpos (rec (pt 53 -35)(pt 0 35))) (do our {4}(pos((pt -20 15)+(pt ball)*(pt 0 0.3)))) )))) (say (define (definerule Agent05_2 direc((bpos (rec (pt 53 -35)(pt 0 35))) (do our {5}(pos((pt -20 -15)+(pt ball)*(pt 0 0.3)))) )))) (say (define (definerule Agent06_2 direc((bpos (rec (pt 53 -35)(pt 0 35))) (do our {6}(pos((pt -10 0)+(pt ball)*(pt 0 0.3)))) )))) (say (define (definerule Agent07_2 direc((bpos (rec (pt 53 -35)(pt 0 35))) (do our {7}(pos((pt -10 -10)+(pt ball)*(pt 0 0.3)))) )))) (say (define (definerule Agent08_2 direc((bpos (rec (pt 53 -35)(pt 0 35))) (do our {8}(pos((pt -10 10)+(pt ball)*(pt 0 0.3)))) )))) (say (define (definerule Agent09_2 direc((bpos (rec (pt 53 -35)(pt 0 35))) (do our {9}(pos((pt 25 0)+(pt ball)*(pt 0 0.3)))) )))) (say (define (definerule Agent10_2 direc((bpos (rec (pt 53 -35)(pt 0 35))) (do our {10}(pos((pt 10 12)+(pt ball)*(pt 0 0.3)))) )))) (say (define (definerule Agent11_2 direc((bpos (rec (pt 53 -35)(pt 0 35))) (do our {11}(pos((pt 10 -12)+(pt ball)*(pt 0 0.3)))) )))) # The Pattern (say (define (definerule RULE_PASS_DOWN direc ((playm play_on) (do our {5 6 8 3 9} (pass {11})))))) (say (define (definerule RULE_PASS_DOWN direc ((playm play_on) (do our {2 4 7 3 9} (pass {10})))))) (say (define (definerule RULE_DONT_SHOOT direc ((bowner our {10 11}) (dont our {10 11} (shoot)))))) (say (define (definerule RULE_DONT_PASS direc ((bowner our {10 11}) (dont our {10 11} (pass {0})))))) (say (define (definerule RULE_10_DR direc ((and (playm play_on)(bowner our {10})) (do our {10} (dribble (pt 52.5 0))))))) (say (define (definerule RULE_11_DR direc ((and (playm play_on)(bowner our {11})) (do our {11} (dribble (pt 52.5 0)))))))