我还在尝试习惯Netlogo。我有两个品种,买家和卖家。买家拥有自己的“dPrice”,卖家拥有自己的“dPrice”。所有的买家和卖家都开始没有做任何交易。我需要让每个买家以随机的方式搜索尚未进行交易的卖家,如果买方的“dPrice大于卖方的”dPrice“,那么将自己和卖方设为已完成交易的卖方不再可用。所以这是我的代码。
Buyers-own [dPrice MadeNewTrade?]
Sellers-own [dPrice MadeNewTrade?]
to Test
ask Buyers [
let dBuyPrice dPrice
ask Sellers with [MadeNewTrade? = false] [
let dSellPrice dPrice
if dBuyPrice >= dSellPrice [
set MadeNewTrade? true
ask myself [
set MadeNewTrade? true
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; I want to break out.
; So don't check the other sellers,
; move to the next buyer and
; check the remaining sellers.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
]
]
]
]
end
问题在于我不知道如何打破卖家循环,这样我就可以阻止买家在与一个卖家进行交易后检查其他卖家。非常感谢任何帮助。
THX
答案 0 :(得分:3)
也许您可以使用与一起使用一个和一些过滤器。可能他们会为你的工作提供便利,并明确你的意图。
Buyers-own [dPrice MadeNewTrade?]
Sellers-own [dPrice MadeNewTrade?]
to Test
ask Buyers [
let dBuyPrice dPrice
let SellersTrade Sellers with [MadeNewTrade? = false and dBuyPrice >= dPrice]
if any? SellersTrade [
ask one-of SellersTrade [set MadeNewTrade? true]
set MadeNewTrade? true
]
]
end
我希望这会对你有所帮助。