2012-12-14 128 views
1

肯定是一个愚蠢的问题,但我不能自己回答。我有以下代码:使用查询结果进行计算

%% Ownedby-relationship in monopoly 
ownedby(bank,weststation). 

%% Account-Value: 
account(player1,1500). 

%% Prices 
price(weststation,200). 

%% Buy an estate in monopoly 
buy(X,Y):- 
    ownedby(bank,X), 
    !, 
    retract(ownedby(bank, X)), 
    assert(ownedby(Y,X)), 
    price(X,Price), 
    account(Y,Accountold), 
    retract(account(Y,Accountold)), 
    assert(account(Y,Accountold-Price)). 

%% Example: 
buy(player1,weststation). 

%% RESULT: 
account(player1,X). 
1500-200 

所以串1500和200被连接起来,但没有数字中减去... :(什么原因德

回答

0

你的规则需要修正

... 
NewValue is Accountold-Price, 
assert(account(Y,NewValue)). 
相关问题