Advertisement
Guest User

Untitled

a guest
May 2nd, 2016
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;; Definition for user agents. This is a good template to build on to produce
  2. ;; smarter agents.
  3.  
  4. (ns pucks.agents.seeker1  
  5.   (:use [pucks globals util vec2D]
  6.         [pucks.agents active]))
  7.  
  8. (defn seeker1-proposals [p]
  9.    
  10.        (let [target (filter :snitch(:sensed p))
  11.             avoid (filter :beater (:sensed p))
  12.             info (filter :seeker (:sensed p))
  13.             wall (filter :stone (:sensed p))
  14.               zap (filter :zapper (:sensed p))]
  15.       {:acceleration (if (empty? avoid)  
  16.                        (if (> (mod (:steps p) 100) 25)
  17.                          1
  18.                          0.7)  
  19.                        (* 0.25 (- (length (:velocity p)))))
  20.        :rotation
  21.             (if (empty? zap)
  22.             (if (empty? target)
  23.               (if (empty? wall)
  24.                 (if (empty? avoid)
  25.                    (if (empty? info)
  26.                        (direction->rotation [400 400])
  27.                         (+ (direction->rotation (:position (first info))) pi))
  28.                 (+ (direction->rotation (:position (first avoid))) pi))
  29.                 (+ (direction->rotation (:position (last wall))) pi))
  30.            (direction->rotation (:position (first target))))
  31.              (+ (direction->rotation (:position (first zap))) pi))
  32.      :fire-torpedo
  33.           (if (empty? (:inventory p))
  34.              false
  35.              (zero? (rand-int 20)))}))
  36.  
  37. (defn seeker1 []
  38.   (merge (active)
  39.          {:seeker true
  40.           :team1 true
  41.           :player true
  42.           :proposal-function seeker1-proposals
  43.           :color [255 255 255]}))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement