anchor.diff:     
      ; осмотр себя любимого на N клеток вокруг
      ;#|
  -   (glPointSize 3.0)
  +   (let ((ms (get userdata 'mouse #f)))
  +   (if ms (begin
  +      (glPointSize 4.0)
  +      (glColor3f 0 0 1)
  +      (glBegin GL_POINTS)
  +      (glVertex2f (car ms) (cdr ms))
  +      (glEnd)
  +   )))
  +   (let ((me (get-mouse-pos))
  +         (N 2))
  +   (glColor3f 0 1 0)
      (glBegin GL_LINES)
  -   (glColor3f 0 1 0)
  -   (let ((me (get-mouse-pos))
  -         (N 6))
      (let lookout ((n 0)  (x (+ (floor (car me)) 0.5)) (y (+ (floor (cdr me)) 0.5)))
         (if (= n N)
            #t
  
positive.code:    (glClear GL_COLOR_BUFFER_BIT)
     (glDisable GL_TEXTURE_2D)
  
     (let* ((my (get-mouse-pos)) ;(my (get userdata 'mouse (cons 0 0)))
            (x (car my))
            (y (cdr my)))
     ; поле
     (glColor3f 1.0 1.0 1.0)
     (glEnable GL_TEXTURE_2D)
  
negative.code:    ; пол (как травку)
     (BindTexture grass-texture)
     (glBegin GL_QUADS)
     (let* ((my (get userdata 'mouse (cons 0 0)))
            (x (car my))
            (y (cdr my)))
     (for-each (lambda (i)
        (for-each (lambda (j)
           (if (= (at i j) 0)
              (let ((c (+
                          (if (is-visible i j             x y) 0.25 0)
                          (if (is-visible (+ i 1) j       x y) 0.25 0)
                          (if (is-visible (+ i 1) (+ j 1) x y) 0.25 0)
                          (if (is-visible i (+ j 1)       x y) 0.25 0))))
                 (glColor3f c c c)
                 (quadT i j))))
           (iota 0 1 HEIGHT)))
        (iota 0 1 WIDTH)))
     (glEnd)
     (glDisable GL_TEXTURE_2D)
  
  