【问题标题】:How to printout all matches facts in a rule如何打印规则中的所有匹配事实
【发布时间】:2015-12-08 18:44:09
【问题描述】:

我有一个像下面这样的规则,我想打印所有符合这个规则的事实(这里是 objct)。我有一个事实对象,其中有一些遵循规则的“对象”。我该怎么做?下面的打印输出只是打印玩家获得的最新对象。但是我想把它们全部打印出来。有什么想法吗?

(defrule have_objcts   
?input <- (input have|possession)
   (objct (name ?n) (location player) (used 0))
   =>          
 ;WHAT SHOULD I WRITE HERE TO PRINTOUT those OBJCT's BELONG TO 
PALYER???????????
 (printout t crlf ?n)
   (retract ?input))  

【问题讨论】:

    标签: clips


    【解决方案1】:

    使用匹配命令:

    CLIPS> 
    (deftemplate objct
       (slot name)
       (slot location)
       (slot used))
    CLIPS>    
    (deffacts initial
       (objct (name x) (location player) (used 0))
       (objct (name y) (location elsewhere) (used 1))
       (objct (name z) (location player) (used 0))
       (input have)
       (input want)
       (input possession)
       (input thing))
    CLIPS>    
    (defrule have_objcts   
       ?input <- (input have|possession)
       (objct (name ?n) (location player) (used 0))
       =>       
       (retract ?input)) 
    CLIPS> (reset)
    CLIPS> (matches have_objcts)
    Matches for Pattern 1
    f-4
    f-6
    Matches for Pattern 2
    f-1
    f-3
    Partial matches for CEs 1 - 2
    f-6,f-3
    f-6,f-1
    f-4,f-3
    f-4,f-1
    Activations
    f-6,f-3
    f-6,f-1
    f-4,f-3
    f-4,f-1
    (4 4 4)
    CLIPS> (run)
    CLIPS> (matches have_objcts)
    Matches for Pattern 1
     None
    Matches for Pattern 2
    f-1
    f-3
    Partial matches for CEs 1 - 2
     None
    Activations
     None
    (2 0 0)
    CLIPS> 
    

    【讨论】:

    • 谢谢。但是我想打印出 have_objct 规则中的所有对象。我的意思是有一个程序,而 have_objct 只是一个规则,有时会根据上述规则触发。当它触发时,它应该打印出玩家拥有的所有对象(对象的位置是玩家)
    • (printout t "location of the object is player" crlf)
    • 基本编程指南,clipsrules.sourceforge.net/documentation/v630/bpg.pdf,第 12.4.2.3 节
    • 谢谢加里。我的意思不是打印一条消息。我知道如何打印一个事实和一个多字段事实。但是我不知道如何打印所有事实(这里是属于玩家的对象)。在您的解决方案中,x 和 z 属于玩家。现在如何在收回 ? 输入之前打印 x 和 z。我编辑了需要放置命令的位置。
    • 我不知道你想做什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    相关资源
    最近更新 更多