2017-04-24 136 views
0

我正在模擬一條與雙車道道路合併的單車道道路,所有道路都沿相同方向行駛。未合併的汽車(汽車1)檢查半徑爲2的汽車是否需要更換到左側車道,如果他們這樣做,汽車會檢查左側車道以確定它是否安全。Netlogo汽車合併

ask cars1[ 
    if (not any? turtles-at -2 4) and (not any? turtles-at -1 4) 
    and (not any? turtles-at 0 4) and (not any? turtles-at 1 4) 
    and (not any? turtles-at 2 4) and (not any? turtles-at 3 4) 
    and (any? merging-cars in-radius 3) 
    [ set ycor 2]] 

我試圖讓如果不是在最近的車道cars1切換到左側車道安全合併汽車停下來。

ask merging-cars[ 
    loop[ 
    if[any? cars1 in-radius 2] 
    [stop] 
    ]] 

這是不工作的代碼。我還沒有想出一種方法來讓合併的汽車在不安全的情況下停下來,並在安全的時候停下來。

謝謝

+0

有沒有看過模型庫中的「Traffic 2 Lanes」模型?它可以作爲合併行爲的一個例子 - 模型中的汽車不會發生碰撞,但是隻有在他們試圖進入的車道中有空間時纔會改變車道。 –

+0

是的,我已經看過它,它在我的模擬的某些部分中有很多幫助,但是在這種情況下它並沒有幫助。我需要合併汽車檢查是否安全,如果不合適,他們需要停下來等到合併安全。 – Emory

+1

沒錯。你可以編輯你的問題,包括一個可重複的例子(如在[MCVE準則](http://stackoverflow.com/help/mcve))?有幾種方法可以滿足您的需求,但如果沒有看到更多細節和上下文,則很難提出最佳選擇。 –

回答

0

爲了讓您在正確的方向看看沒有?相關文件,並記下您可以將其中的角度來檢查,以及向左或向右的命令,如:

not any? turtles-on patch-right-and-ahead 60 2 

這話說....檢查的60度角向右在這隻烏龜前面有2個補丁。