Давайте делиться кодом! :))
я тут после новости решил немного поразмять моск...
вот что я тут накодил:
;; простенькая функция цикла...
(define (loop th) (if (equal? (robot-feel (car th)) #t) (car th) (loop (cdr th))))
;; функция возвразающая строчку с названием предмета, находящегося перед роботом
(define (what-is-it?) (let ((things '("prize" "food" "space" "wall" "baddie"))) (loop things)))
;; а вот собсно оно... венец творения... искусственный интелект! xD
;; поведение прямое вдоску... робот смотри прямо, если может что-то
;; сделать с предметом перед собой, то делает, если же там пусто или
;; стена, то крутимся по часовой стрелке... если прокрутились на 360
;; градусов, то останавливаемся... попытки двигаться ограничены переменной
;; max-steps, это чтобы робота не заклинило :))
(define (explore max-steps turn-count)
(if (or (zero? max-steps)
(= turn-count 4))
nil
(let ((thing (what-is-it?)))
(cond ((equal? thing "space") (robot-turn 1) (explore max-steps (+ turn-count 1)))
((equal? thing "wall") (robot-turn 1) (explore max-steps (+ turn-count 1)))
((equal? thing "prize") (robot-grab) (robot-move 1) (explore (- max-steps 1) 0))
((equal? thing "food") (robot-grab) (robot-move 1) (explore (- max-steps 1) 0))
((equal? thing "baddie") (robot-zap) (robot-move 1) (explore (- max-steps 1) 0))))))
вообщем-то и всё :) очень забавно смотреть как робот мочит жуков
направо и налево, прям как живой :) надо ещё что-нить придумать
поинтереснее, чтобы он передвигался по пустому пространству,
и искал себе занятие :) хватило бы ему энергии...
А что придумали вы? делитесь давайте!
Форум —
Development



