import numpy as np import random import pickle # 司机 class Driver(): def __init__(self,id,x,y): self.id = id self.x = x self.y = y # 订单 class Order(): def __init__(self,id,x,y,to_x,to_y,order_time): self.id = id self.x = x self.y = y self.to_x = to_x self.to_y = to_y # time range: 1 ~ 144 self.order_time = order_time self.travel_distance = (abs(self.to_x - self.x) + abs(self.to_y - self.y) ) * random.uniform(0.96,1.04) self.order_money = (12 + (max(self.travel_distance,8)-8) * 1.8 ) * random.uniform(0.92,1.08) self.travel_time = int(self.travel_distance / 5 + random.randint(0,1)) self.arrive_time = self.order_time + self.travel_time self.arrive_time = self.arrive_time if self.arrive_time<=144 else self.arrive_time-144 # 配对 class Match(): def __init__(self,order,driver): self.order = order self.driver = driver self.distance = (abs(order.x - driver.x) + abs(order.y - driver.y) ) * random.uniform(0.96,1.03) self.money = order.order_money def save(object_to_save, path): with open(path, 'wb') as f: pickle.dump(object_to_save, f) def load(path): with open(path, 'rb') as f: object1 = pickle.load(f) return object1