Back

 Appendix D: Sample Ghost Code ```Code for ghost 0: (if (> (/ NUM_SQUARES          (- (squares-to-pacman West)             (- 366.091                (cosine CONSECUTIVE_MOVES_FORWARD))))       (_ (_ (squares-to-non-dot Forward))))    Forward    (if (not (not (> 366.091                (squares-to-pacman (if (<= (/ (% (squares-to-non-dot Forward)                               (squares-to-non-dot (if (<= (/ (% (+ (ghosts-in-dir Left)                                                 (% (+ (ghosts-in-dir Left)                                                       366.091)                                                    (squares-to-non-dot Right)))                                              (squares-to-non-dot Right))                                           (squares-to-non-dot Left))                                        (+ (ghosts-in-dir Left)                                           366.091))                                     Forward                                     Forward)))                            366.091)                         (+ (ghosts-in-dir Left)                            366.091))                      Forward                      Left)))))       Forward       (if (not (not (> (/ (% (+ (squares-to-non-dot Forward)                            (squares-to-non-dot Forward))                         (ghosts-in-dir Right))                      (ghosts-in-dir Right))                   (squares-to-pacman Forward))))          Forward          (if (> 366.091                366.091)             Right             (if (not (> (/ (+ (ghosts-in-dir Left)                            366.091)                         (ghosts-in-dir Right))                      (squares-to-pacman Forward)))                Left                Left))))) Prefix notation for ghost 0 Code for ghost 1 (if (and (and (<= (ghosts-in-dir Forward)             (squares-to-wall Forward))          (<= (squares-to-wall (drop-pheromone (_ (squares-to-wall Right))                   (_ (* (pacmen-in-dir (if (<= (ghosts-in-dir Left)                                  (pacmen-in-dir (drop-pheromone (squares-to-wall (drop-pheromone NUM_SQUARES                                              (pacmen-in-dir Right)                                              Forward))                                        (_ (_ (/ (* (pacmen-in-dir Right)                                                    PHEROMONE-VAL)                                                 (* (pacmen-in-dir Forward)                                                    (ghosts-in-dir Forward)))))                                        (drop-pheromone (squares-to-wall (drop-pheromone 92                                                 264.004                                                 East))                                           (* (pacmen-in-dir (drop-pheromone 92                                                    (/ (ghosts-in-dir Forward)                                                       (/ 135.39                                                          (ghosts-in-dir Forward)))                                                    (drop-pheromone (squares-to-wall East)                                                       1.776                                                       (if (and (and (<= (squares-to-wall South)                                                                   NUM_SQUARES)                                                                (> (squares-to-pacman Forward)                                                                   (round (squares-to-wall Forward))))                                                             (<= (squares-to-wall Forward)                                                                (* (* (pacmen-in-dir Forward)                                                                      (ghosts-in-dir Forward))                                                                   (squares-to-pacman South))))                                                          Right                                                          Forward))))                                              (ghosts-in-dir Forward))                                           Forward))))                               Forward                               Forward))                         92))                   Forward))             PHEROMONE-VAL))       (<= (squares-to-wall Forward)          (* (* 92                PHEROMONE-VAL)             264.004)))    Right    Forward) Prefix notation for ghost 1 Code for ghost 2 (if (or (not (or (>= (ghosts-in-dir West)                (pacmen-in-dir East))             (>= (squares-to-non-dot West)                (squares-to-non-dot West))))       (not (< PHEROMONE-STRENGTH             (pacmen-in-dir West))))    (if (and (>= (ghosts-in-dir (if (and (or (or (not (and (or (not (>= (ghosts-in-dir (if (and (or (< (round (round (- (sine (squares-to-pacman East))                                                                   (pacmen-in-dir East))))                                                          (pacmen-in-dir Backwards))                                                       (>= (ghosts-in-dir North)                                                          (pacmen-in-dir Right)))                                                    (< (squares-to-non-dot Left)                                                       (squares-to-non-dot North)))                                                 North                                                 West))                                           (pacmen-in-dir Right)))                                     (or (>= (ghosts-in-dir North)                                           (pacmen-in-dir Right))                                        (not (>= (squares-to-non-dot West)                                              (pacmen-in-dir Right)))))                                  (< PHEROMONE-VAL                                     (squares-to-non-dot West))))                            (< PHEROMONE-STRENGTH                               (pacmen-in-dir Right)))                         (< (abs (* PHEROMONE-STRENGTH                                  (pacmen-in-dir West)))                            (squares-to-non-dot North)))                      (not (or (>= (ghosts-in-dir East)                               (pacmen-in-dir East))                            (>= (dots-in-dir East)                               (squares-to-non-dot West)))))                   North                   Right))             (pacmen-in-dir East))          (< (abs (* (- (round (squares-to-non-dot Right))                      (pacmen-in-dir East))                   (pacmen-in-dir West)))             (squares-to-non-dot North)))       North       Right)    West) Prefix notation for ghost 2 Code for ghost 3 (drop-pheromone (ghosts-in-dir West)    (pacmen-in-dir (drop-pheromone PHEROMONE-VAL          (round (- (% (squares-to-wall (drop-pheromone (squares-to-ghost Backwards)                         (squares-to-ghost Forward)                         Backwards))                   (- (squares-to-non-dot Left)                      (squares-to-ghost Backwards)))                (squares-to-wall West)))          Backwards))    East) Prefix notation for ghost 3 ```