#lang racket
(define control_central%
  (class object%
    ;;field: propiedades estructurales
    (field
     (accion #f)
     )
    ;;;;;;;;;;;;;;;;;;;;
    (define sensacion->accion;;uno al azar
      (lambda (out_sensitivo)
        (let ((no-obsta
               (filter-map
                (lambda (par orden)
                  (if (equal? par (cons 0 1))
                      #f
                      orden)
                  )
                out_sensitivo '(0 1 2 3 4 5 6 7)) ))
          (list-ref no-obsta (random (length no-obsta)))
          )
        ))
    (define/public proceso!
      (lambda (output_receptor last-action)
        (set! accion (sensacion->accion output_receptor))
        (values accion)
        ))
    (super-new)
    ))
;;;;;;;;;;;
(define cerebro (make-object control_central%))


(provide cerebro)
