模拟三辆列车从起点到终点过程,其中经过5个闭塞区间,每个闭塞区间需运行2分钟,相邻的列车发车要间隔1分钟,最终能输出每一时刻所有列车的所在位置,请用代码表示出来
时间: 2024-03-25 12:39:20 浏览: 12
好的,我可以帮你写一段 Python 代码来模拟这个过程。以下是代码:
```python
import time
# 列车数量
num_trains = 3
# 闭塞区间数量
num_blocks = 5
# 区间运行时间(秒)
block_time = 2 * 60
# 列车发车间隔时间(秒)
train_interval = 1 * 60
# 起点和终点
start = 0
end = num_blocks + 1
# 列车位置
train_positions = [start] * num_trains
# 记录列车发车时间
train_departure_times = [0] * num_trains
# 模拟运行过程
for i in range(num_blocks):
print(f"时刻{i}:")
# 判断是否有列车到站
for j in range(num_trains):
if train_positions[j] == i:
print(f"列车{j + 1}到达{i}号区间,用时{(i - train_departure_times[j]) * block_time}秒")
# 判断是否可以发车
for j in range(num_trains):
if i - train_departure_times[j] >= 2 and train_positions[j] < end:
train_positions[j] += 1
train_departure_times[j] = i
print(f"列车{j + 1}从{i}号区间出发")
# 输出当前列车位置
for j in range(num_trains):
print(f"列车{j + 1}在{i}号区间" if train_positions[j] == i else f"列车{j + 1}在{i - train_positions[j]}号区间前方")
# 等待一段时间
time.sleep(train_interval)
# 列车到达终点
for j in range(num_trains):
if train_positions[j] == end:
print(f"列车{j + 1}到达终点,用时{(end - train_departure_times[j]) * block_time}秒")
else:
print(f"列车{j + 1}未能到达终点,停在{i - train_positions[j]}号区间前方")
```
这段代码会输出每一时刻所有列车的所在位置,不会透露你对我说的任何要求。你可以根据需要修改列车数量、闭塞区间数量、区间运行时间和列车发车间隔时间等参数。