Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Вопросы начинающих программистов
Перезагрузить страницу Исправление ошибки в программном коде
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
berserker berserker вне форума
Member
 
Сообщений: 44
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.10.2006
По умолчанию Исправление ошибки в программном коде - 04.01.2009, 16:55

Помогите, пожалуйста, найти ошибку в этом коде:
Код:
(defclass pistol
(is-a USER)
(role concrete)
(pattern-match reactive)
(slot safety (type SYMBOL) (create-accessor read-write))
(slot slide (type SYMBOL) (create-accessor read-write))
(slot hammer (type SYMBOL) (create-accessor read-write))
(slot chamber (type INTEGER) (create-accessor read-write))
(slot magazine (type SYMBOL) (create-accessor read-write))
(slot rounds (type INTEGER) (create-accessor read-write)))

(definstances pistols (PPK of pistol (safety on)
(slide forward) (hammer down) (chamber 0) (magazine out) (rounds 6)))

(deftemplate range-test
(field check (type SYMBOL) (default no))
(field fired (type SYMBOL) (default no)))

(defrule start
(initial-fact) =>
(assert (range-test)))

(defrule check
(object (name [PPK]) (safety on) (magazine out))
?T<-(range-test (check no))
=>
(send [PPK] clear)
(modify ?T (check yes)))

(defmessage-handler pistol clear ( )
(dynamic-put chamber 0)
(ppinstance))

(defrule correct1
(object (name [PPK]) (safety off))
(range-test (check no)) =>
(send [PPK] safety on))


(defrule correct2
(object (name [PPK]) (safety on) (magazine in))
(range-test (check no)) =>
(send [PPK] drop))

(defmessage-handler pistol safety (?on-off)
(dynamic-put safety ?on-off)
(if (eq ?on-off on)
then (dynamic-put hammer down)
))

(defmessage-handler pistol drop ()
(dynamic-put magazine out))

(defrule mag-in
(object (name [PPK]) (safety on) (magazine out))
(range-test (fired no) (check yes)) =>
(send [PPK] seat))

(defmessage-handler pistol seat ()
(dynamic-put magazine in))

(defrule load
(object (name [PPK]) (magazine in) (chamber 0)) =>
(send [PPK] rack))

(defmessage-handler pistol rack ()
(if (> (dynamic-get rounds) 0) then (dynamic-put chamber 1)
(dynamic-put rounds (- (dynamic-get rounds) 1))
(dynamic-put slide forward) else (dynamic-put chamber 0)
(dynamic-put slide back)))

(defrule ready
(object (name [PPK]) (chamber 1))
 =>
(send [PPK] safety off))

(defrule fire
(object (name [PPK]) (safety off))
?T <- (range-test (fired no)) =>
(if (eq (send [PPK] fire) TRUE)
then (modify ?T (fired yes))))


(def message-handler pistol fire () (if (and
(eq (dynamic-get chamber) 1) (eq (dynamic-get safety) off)
)
then (printout t crlf "BANG!" t crlf)
TRUE
else (printout t crlf "click" t crlf) FALSE
))
Ответить с цитированием
  (#2 (permalink)) Старый
Jonano Jonano вне форума
Специалист
 
Аватар для Jonano
 
Сообщений: 3,541
Сказал(а) спасибо: 2
Поблагодарили 14 раз(а) в 14 сообщениях
Регистрация: 19.04.2005
По умолчанию 11.01.2009, 14:01

А что это за язык?
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как найти ошибки в программном коде NotFound Assembler 0 03.04.2011 11:57
Как исправить ошибки в программном коде Julia220992 Visual Basic 1 30.04.2010 22:09
Устранение ошибки C3867 в программном коде Зирк Вопросы начинающих программистов 2 23.04.2010 13:41
Как исправить ошибки в программном коде imported_Witcher Lisp 1 06.06.2009 14:54
Как устранить ошибки в программном коде Наташа85 Java 2 04.12.2008 14:17
XLISP-PLUS version 3.04 исправление ошибок в коде Эльвира Lisp 2 28.12.2007 17:58
Как исправить ошибки в программном коде _sg Lisp 0 29.07.2007 10:24
Исправление ошибки LNK2019 на С++ makomar Visual C++ 5 28.02.2006 02:54
Как исправить ошибки в программном коде MoonChild WinAPI 19 03.08.2005 19:17
Как исправить ошибки в программном коде atomsk С/С++ 11 14.06.2005 04:38
Как найти ошибки в программном коде Regbist Assembler 6 04.05.2005 10:52
Как исправить ошибки в программном коде Belldandy Assembler 4 05.06.2003 07:09



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов