Netlogo链接品种

时间:2015-06-02 10:15:37

标签: netlogo

我还在尝试习惯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

1 个答案:

答案 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

我希望这会对你有所帮助。