亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

創建一個全局字典來跟蹤迭代

創建一個全局字典來跟蹤迭代

江戶川亂折騰 2023-06-13 15:02:32
我已經在 simpy 中創建了一個火車模擬,但為了跟蹤前方的火車,我打算使用字典,其中鍵值可以充當“信號”狀態。這些鍵基本上是信號編號。前面的火車可以檢查下一個信號燈是否為綠色,反之亦然。然而,代碼似乎對其余信號工作正常,但我想檢查信號 0 和信號 1,以便火車不會產生或不會離開。我沒有輸入整個代碼,因為它只會讓它變得冗長。這只是為了讓我知道我想做什么。這是示例代碼 -signal_dict={} def switchSignal(self,signal):        if signal == 1 or signal == 0:            signal_dict[signal]= False            return signal_dict        else:            s[signal-1] = False            return signal_dictdef switchSignal_2(self,signal):    if signal == 1 or signal == 0:        signal_dict[signal]= True        return signal_dict    else:        signal_dict[signal-1] = True        return signal_dictclass Train(object):        def __init__(self,xxxx):       xxxxxxx       xxxxxxx    def engagelock(self, car, drivetime,signals):         with self.machine.request() as request:            yield request              for signal in range(0,signals):                switchSignal(self,signal)                   while signal_dict.get(signal+1) is False :                    print(f"{now():s} {self.name:s} is waiting for Signal {signal+1} to turn GREEN")                    yield env.timeout(60)                else:                    if isdelay()[0] == True:                        switchSignal(self,signal)                        time_delay=round(delay()[0],2)                        print(f"\n{now():s} {self.name:s} is experiencing a delay of {round((time_delay*10)/60,2)} min at Signal {signal}")                        print(signal_dict)                        yield env.timeout(round(time_delay*10,2))                    switchSignal_2(self,signal) def process(self,k):        here = 'London Old Oak Commons'                   dest = 'Birmingham Interchange'        t1=env.now        print(f"{now():s} {self.name:s} Departed from {here:s}")                drivetime=timeTo(self.accel, self.maxV, d)        yield env.process(self.engagelock(self.name,drivetime,k))        yield env.process(self.releaselock(self.name))        yield env.timeout(drivetime)        
查看完整描述

1 回答

?
SMILET

TA貢獻1796條經驗 獲得超4個贊

我得到了這個工作,而不是雙向鏈表,我只是創建了一個全局字典并保留了火車的標志,用于前面的信號和后面的信號。這樣,每列火車都會檢查下一個信號燈,如果是紅色,就會減速到下一個信號燈。

查看完整回答
反對 回復 2023-06-13
  • 1 回答
  • 0 關注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號