from data import *
import datetime

def initialize():
    initialize_map()
    initialize_student()
    initialize_bus()
    return


def initialize_map():
    campus_shahe = Campus([], [], [])
    campus_haidian = Campus([], [], [])

    '''沙河校区数据初始化'''
    #campus_shahe.node.append(Node(0, Position(30, 452.5)))
    #campus_shahe.road.append(Road(0, [Node(4, Position(152.5, 475)), Node(107, Position(152.5, 500))], 1, 25, 1))
    #campus_shahe.building.append(Building(67, "测试", Position(182.5, 72), [Node(101, Position(152.5, 67.5)),Node(81, Position(182.5, 100))], [], "h", 7))
    campus_shahe.node.append(Node(0, Position(470, 250)))
    campus_shahe.node.append(Node(1, Position(0, 130)))
    campus_shahe.node.append(Node(2, Position(16, 130)))
    campus_shahe.node.append(Node(3, Position(42, 130)))
    campus_shahe.node.append(Node(4, Position(120, 34)))
    campus_shahe.node.append(Node(5, Position(120, 90)))
    campus_shahe.node.append(Node(6, Position(60, 130)))
    campus_shahe.node.append(Node(7, Position(120, 10)))
    campus_shahe.node.append(Node(8, Position(120, 60)))
    campus_shahe.node.append(Node(9, Position(120, 20)))
    campus_shahe.node.append(Node(10, Position(120, 130)))
    campus_shahe.node.append(Node(11, Position(170, 10)))
    campus_shahe.node.append(Node(12, Position(170, 20)))
    campus_shahe.node.append(Node(13, Position(140, 60)))
    campus_shahe.node.append(Node(14, Position(130, 90)))
    campus_shahe.node.append(Node(15, Position(170, 130)))
    campus_shahe.node.append(Node(16, Position(170, 120)))
    campus_shahe.node.append(Node(17, Position(160, 120)))
    campus_shahe.node.append(Node(18, Position(170, 110)))
    campus_shahe.node.append(Node(19, Position(125, 130)))
    campus_shahe.node.append(Node(20, Position(120, 160)))
    campus_shahe.node.append(Node(21, Position(180, 10)))
    campus_shahe.node.append(Node(22, Position(180, 60)))
    campus_shahe.node.append(Node(23, Position(170, 60)))
    campus_shahe.node.append(Node(24, Position(180, 80)))
    campus_shahe.node.append(Node(25, Position(180, 130)))
    campus_shahe.node.append(Node(26, Position(180, 170)))
    campus_shahe.node.append(Node(27, Position(180, 210)))
    campus_shahe.node.append(Node(28, Position(180, 230)))
    campus_shahe.node.append(Node(29, Position(180, 250)))
    campus_shahe.node.append(Node(30, Position(180, 260)))
    campus_shahe.node.append(Node(31, Position(160, 260)))
    campus_shahe.node.append(Node(32, Position(150, 280)))
    campus_shahe.node.append(Node(33, Position(150, 245)))
    campus_shahe.node.append(Node(34, Position(130, 245)))
    campus_shahe.node.append(Node(35, Position(130, 215)))
    campus_shahe.node.append(Node(36, Position(150, 215)))
    campus_shahe.node.append(Node(37, Position(140, 210)))
    campus_shahe.node.append(Node(38, Position(170, 200)))
    campus_shahe.node.append(Node(39, Position(140, 180)))
    campus_shahe.node.append(Node(40, Position(160, 170)))
    campus_shahe.node.append(Node(41, Position(180, 310)))
    campus_shahe.node.append(Node(42, Position(120, 310)))
    campus_shahe.node.append(Node(43, Position(180, 100)))
    campus_shahe.node.append(Node(44, Position(210, 60)))
    campus_shahe.node.append(Node(45, Position(240, 80)))
    campus_shahe.node.append(Node(46, Position(240, 30)))
    campus_shahe.node.append(Node(47, Position(240, 10)))
    campus_shahe.node.append(Node(48, Position(270, 10)))
    campus_shahe.node.append(Node(49, Position(240, 60)))
    campus_shahe.node.append(Node(50, Position(270, 60)))
    campus_shahe.node.append(Node(51, Position(300, 10)))
    campus_shahe.node.append(Node(52, Position(300, 60)))
    campus_shahe.node.append(Node(53, Position(240, 130)))
    campus_shahe.node.append(Node(54, Position(240, 100)))
    campus_shahe.node.append(Node(55, Position(270, 100)))
    campus_shahe.node.append(Node(56, Position(300, 130)))
    campus_shahe.node.append(Node(57, Position(300, 210)))
    campus_shahe.node.append(Node(58, Position(250, 210)))
    campus_shahe.node.append(Node(59, Position(350, 210)))
    campus_shahe.node.append(Node(60, Position(250, 250)))
    campus_shahe.node.append(Node(61, Position(300, 250)))
    campus_shahe.node.append(Node(62, Position(240, 310)))
    campus_shahe.node.append(Node(63, Position(250, 280)))
    campus_shahe.node.append(Node(64, Position(300, 310)))
    campus_shahe.node.append(Node(65, Position(420, 10)))
    campus_shahe.node.append(Node(66, Position(420, 60)))
    campus_shahe.node.append(Node(67, Position(420, 70)))
    campus_shahe.node.append(Node(68, Position(420, 100)))
    campus_shahe.node.append(Node(69, Position(420, 130)))
    campus_shahe.node.append(Node(70, Position(300, 150)))
    campus_shahe.node.append(Node(71, Position(300, 170)))
    campus_shahe.node.append(Node(72, Position(300, 190)))
    campus_shahe.node.append(Node(73, Position(420, 150)))
    campus_shahe.node.append(Node(74, Position(420, 210)))
    campus_shahe.node.append(Node(75, Position(420, 250)))
    campus_shahe.node.append(Node(76, Position(420, 280)))
    campus_shahe.node.append(Node(77, Position(450, 250)))


    campus_shahe.building.append(Building(0, "学院楼1", Position(440, 280), [Node(76, Position(420, 280))], [], "h", 10))
    campus_shahe.building.append(Building(1, "西门", Position(0, 130), [Node(1, Position(0, 130))], [], "v", 8))
    campus_shahe.building.append(Building(2, "快递站", Position(16, 110), [Node(2, Position(16, 130))], [], "h", 7))
    campus_shahe.building.append(Building(3, "待规划区域1", Position(40, 60), [Node(3, Position(42, 130))], [], "v", 10))
    campus_shahe.building.append(Building(4, "待规划区域2", Position(30, 210), [Node(6, Position(60, 130))], [], "h", 10))
    campus_shahe.building.append(Building(5, "运动场", Position(80, 60), [Node(4, Position(120, 34)), Node(5, Position(120, 90))],["足球场", "篮球场", "排球场"], "h", 10))
    campus_shahe.building.append(Building(6, "学生公寓E区", Position(130, 20), [Node(9, Position(120, 20))], [], "h", 7))
    campus_shahe.building.append(Building(7, "学生公寓D2区", Position(175, 20), [Node(12, Position(170, 20))], [], "v", 7))
    campus_shahe.building.append(Building(8, "学生公寓B区", Position(130, 65), [Node(13, Position(140, 60)), Node(14, Position(130, 90))], [], "v", 7))
    campus_shahe.building.append(Building(9, "学生公寓C区", Position(145, 65), [Node(13, Position(140, 60))], [], "h", 7))
    campus_shahe.building.append(Building(10, "学生公寓D1区", Position(175, 80), [Node(23, Position(170, 60)), Node(24, Position(180, 80))], [], "v", 7))
    campus_shahe.building.append(Building(11, "超市", Position(130, 95), [Node(17, Position(160, 120))], [], "h", 7))
    campus_shahe.building.append(Building(12, "生活服务区", Position(160, 95), [Node(17, Position(160, 120))], ["文具店", "理发店", "水果店"], "h", 7))
    campus_shahe.building.append(Building(13, "大屏幕", Position(110, 140), [Node(19, Position(125, 135))], [], "v", 7))
    campus_shahe.building.append(Building(14, "S1区", Position(130, 160), [Node(20, Position(120, 160))], ["信息楼"], "h", 7))
    campus_shahe.building.append(Building(15, "S2区", Position(160, 160), [Node(40, Position(160, 170))], [], "h", 7))
    campus_shahe.building.append(Building(16, "S3区", Position(160, 190), [Node(37, Position(140, 210))], [], "h", 7))
    campus_shahe.building.append(Building(17, "S4区", Position(160, 210), [Node(27, Position(180, 210))], [], "h", 7))
    campus_shahe.building.append(Building(18, "S5区", Position(160, 230), [Node(28, Position(180, 230))], [], "h", 7))
    campus_shahe.building.append(Building(19, "新建宿舍楼", Position(150, 290), [Node(32, Position(150, 280))], [], "h", 7))
    campus_shahe.building.append(Building(20, "教工食堂", Position(205, 30), [Node(44, Position(210, 60))], [], "h", 10))
    campus_shahe.building.append(Building(21, "学生食堂", Position(205, 80), [Node(43, Position(180, 100)), Node(44, Position(210, 60))], [], "h", 10))
    campus_shahe.building.append(Building(22, "综合办公楼", Position(270, 30), [Node(50, Position(270, 60))], [], "h", 10))
    campus_shahe.building.append(Building(23, "学生活动中心", Position(285, 100), [Node(50, Position(270, 60))], ["学活", "羽毛球馆"], "v", 6))
    campus_shahe.building.append(Building(24, "小麦铺", Position(250, 90), [Node(45, Position(240, 80))], [], "v", 7))
    campus_shahe.building.append(Building(25, "邮局", Position(270, 110), [Node(55, Position(270, 100))], ["邮政"], "h", 7))
    campus_shahe.building.append(Building(26, "二维码广场", Position(240, 60), [Node(49, Position(240, 60))], [], "h", 7))
    campus_shahe.building.append(Building(27, "医务室", Position(270, 0), [Node(48, Position(270, 10))], [], "h", 10))
    campus_shahe.building.append(Building(28, "公共教学楼", Position(240, 160), [Node(53, Position(240, 130))], [], "h", 10))
    campus_shahe.building.append(Building(29, "人工湖", Position(300, 230), [Node(58, Position(250, 210)), Node(59, Position(350, 210))], ["湖"], "h", 10))
    campus_shahe.building.append(Building(30, "南区食堂", Position(200, 270), [Node(30, Position(180, 260))], [], "h", 10))
    campus_shahe.building.append(Building(31, "图书馆", Position(330, 60), [Node(52, Position(300, 60)), Node(56, Position(300, 130))], [], "h", 12))
    campus_shahe.building.append(Building(32, "东配楼", Position(390, 60), [Node(66, Position(420, 60))], [], "h", 10))
    campus_shahe.building.append(Building(33, "咖啡厅", Position(400, 100), [Node(68, Position(420, 100))], [], "h", 7))
    campus_shahe.building.append(Building(34, "N教学楼", Position(350, 150), [Node(70, Position(300, 150))], [], "h", 10))
    campus_shahe.building.append(Building(35, "S教学楼", Position(350, 190), [Node(72, Position(300, 190))], [], "h", 10))
    campus_shahe.building.append(Building(36, "报告厅", Position(350, 170), [Node(71, Position(300, 170))], [], "h", 10))
    campus_shahe.building.append(Building(37, "远期规划项目", Position(350, 280), [Node(75, Position(420, 250))], [], "h", 10))
    campus_shahe.building.append(Building(38, "南门", Position(300, 320), [Node(64, Position(300, 310))], [], "h", 10))
    campus_shahe.building.append(Building(39, "学院楼2", Position(450, 70), [Node(67, Position(420, 70))], [], "h", 10))
    campus_shahe.building.append(Building(40, "教室楼S1", Position(450, 150), [Node(73, Position(420, 150))], [], "h", 10))
    campus_shahe.building.append(Building(41, "实验楼S2", Position(450, 230), [Node(77, Position(450, 250))], [], "h", 10))
    campus_shahe.building.append(Building(42, "实验楼S3", Position(505, 230), [Node(0, Position(470, 250))], [], "h", 10))

    campus_shahe.road.append(Road(0, [Node(77, Position(450, 250)), Node(0, Position(470, 250))], 0.8, 20, 0))
    campus_shahe.road.append(Road(1, [Node(1, Position(0, 130)), Node(2, Position(16, 130))], 1, 16, 1))
    campus_shahe.road.append(Road(2, [Node(2, Position(16, 130)), Node(3, Position(42, 130))], 1, 26, 1))
    campus_shahe.road.append(Road(3, [Node(3, Position(42, 130)), Node(6, Position(60, 130))], 1, 18, 1))
    campus_shahe.road.append(Road(4, [Node(6, Position(60, 130)), Node(10, Position(120, 130))], 1, 60, 1))
    campus_shahe.road.append(Road(5, [Node(7, Position(120, 10)), Node(9, Position(120, 20))], 1, 10, 1))
    campus_shahe.road.append(Road(6, [Node(9, Position(120, 20)), Node(4, Position(120, 34))], 1, 14, 1))
    campus_shahe.road.append(Road(7, [Node(4, Position(120, 34)), Node(8, Position(120, 60))], 1, 26, 1))
    campus_shahe.road.append(Road(8, [Node(8, Position(120, 60)), Node(5, Position(120, 90))], 1, 30, 1))
    campus_shahe.road.append(Road(9, [Node(5, Position(120, 90)), Node(10, Position(120, 130))], 1, 40, 1))
    campus_shahe.road.append(Road(10, [Node(10, Position(120, 130)), Node(20, Position(120, 160))], 1, 30, 1))
    campus_shahe.road.append(Road(11, [Node(20, Position(120, 160)), Node(42, Position(120, 310))], 1, 150, 1))
    campus_shahe.road.append(Road(12, [Node(7, Position(120, 10)), Node(11, Position(170, 10))], 0.8, 50, 1))
    campus_shahe.road.append(Road(13, [Node(11, Position(170, 10)), Node(12, Position(170, 20))], 0.8, 10, 1))
    campus_shahe.road.append(Road(14, [Node(11, Position(170, 10)), Node(21, Position(180, 10))], 0.8, 10, 1))
    campus_shahe.road.append(Road(15, [Node(8, Position(120, 60)), Node(13, Position(140, 60))], 0.8, 20, 1))
    campus_shahe.road.append(Road(16, [Node(13, Position(140, 60)), Node(23, Position(170, 60))], 0.8, 30, 1))
    campus_shahe.road.append(Road(17, [Node(23, Position(170, 60)), Node(22, Position(180, 60))], 0.8, 10, 1))
    campus_shahe.road.append(Road(18, [Node(5, Position(120, 90)), Node(14, Position(130, 90))], 0.8, 10, 1))
    campus_shahe.road.append(Road(19, [Node(10, Position(120, 130)), Node(19, Position(125, 130))], 1, 5, 1))
    campus_shahe.road.append(Road(20, [Node(19, Position(125, 130)), Node(15, Position(170, 130))], 1, 45, 1))
    campus_shahe.road.append(Road(21, [Node(15, Position(170, 130)), Node(16, Position(170, 120))], 0.8, 10, 1))
    campus_shahe.road.append(Road(22, [Node(16, Position(170, 120)), Node(17, Position(160, 120))], 0.8, 10, 1))
    campus_shahe.road.append(Road(23, [Node(16, Position(170, 120)), Node(18, Position(170, 110))], 0.8, 10, 1))
    campus_shahe.road.append(Road(24, [Node(15, Position(170, 130)), Node(25, Position(180, 130))], 1, 10, 1))
    campus_shahe.road.append(Road(25, [Node(21, Position(180, 10)), Node(22, Position(180, 60))], 1, 50, 1))
    campus_shahe.road.append(Road(26, [Node(22, Position(180, 60)), Node(24, Position(180, 80))], 1, 20, 1))
    campus_shahe.road.append(Road(27, [Node(24, Position(180, 80)), Node(43, Position(180, 100))], 1, 20, 1))
    campus_shahe.road.append(Road(28, [Node(43, Position(180, 100)), Node(25, Position(180, 130))], 1, 30, 1))
    campus_shahe.road.append(Road(29, [Node(25, Position(180, 130)), Node(26, Position(180, 170))], 0.8, 40, 1))
    campus_shahe.road.append(Road(30, [Node(26, Position(180, 170)), Node(27, Position(180, 210))], 0.8, 40, 1))
    campus_shahe.road.append(Road(31, [Node(27, Position(180, 210)), Node(28, Position(180, 230))], 0.8, 20, 1))
    campus_shahe.road.append(Road(32, [Node(28, Position(180, 230)), Node(29, Position(180, 250))], 0.8, 20, 1))
    campus_shahe.road.append(Road(33, [Node(29, Position(180, 250)), Node(30, Position(180, 260))], 0.8, 10, 1))
    campus_shahe.road.append(Road(34, [Node(30, Position(180, 260)), Node(41, Position(180, 310))], 0.8, 50, 1))
    campus_shahe.road.append(Road(35, [Node(41, Position(180, 310)), Node(42, Position(120, 310))], 0.8, 60, 1))
    campus_shahe.road.append(Road(36, [Node(30, Position(180, 260)), Node(31, Position(160, 260))], 0.6, 20, 1))
    campus_shahe.road.append(Road(37, [Node(31, Position(160, 260)), Node(32, Position(150, 280))], 0.6, 22, 1))
    campus_shahe.road.append(Road(38, [Node(31, Position(160, 260)), Node(33, Position(150, 245))], 0.6, 18, 1))
    campus_shahe.road.append(Road(39, [Node(33, Position(150, 245)), Node(34, Position(130, 245))], 0.6, 20, 1))
    campus_shahe.road.append(Road(40, [Node(34, Position(130, 245)), Node(35, Position(130, 215))], 0.6, 30, 1))
    campus_shahe.road.append(Road(41, [Node(35, Position(130, 215)), Node(36, Position(150, 215))], 0.6, 20, 1))
    campus_shahe.road.append(Road(42, [Node(36, Position(150, 215)), Node(28, Position(180, 230))], 0.6, 34, 1))
    campus_shahe.road.append(Road(43, [Node(37, Position(140, 210)), Node(38, Position(170, 200))], 0.6, 32, 1))
    campus_shahe.road.append(Road(44, [Node(37, Position(140, 210)), Node(39, Position(140, 180))], 0.6, 30, 1))
    campus_shahe.road.append(Road(45, [Node(39, Position(140, 180)), Node(40, Position(160, 170))], 0.6, 22, 1))
    campus_shahe.road.append(Road(46, [Node(21, Position(180, 10)), Node(47, Position(240, 10))], 0.8, 60, 1))
    campus_shahe.road.append(Road(47, [Node(47, Position(240, 10)), Node(48, Position(270, 10))], 0.8, 30, 1))
    campus_shahe.road.append(Road(48, [Node(48, Position(270, 10)), Node(51, Position(300, 10))], 0.8, 30, 1))
    campus_shahe.road.append(Road(49, [Node(47, Position(240, 10)), Node(46, Position(240, 30))], 0.8, 20, 1))
    campus_shahe.road.append(Road(50, [Node(46, Position(240, 30)), Node(49, Position(240, 60))], 0.8, 30, 1))
    campus_shahe.road.append(Road(51, [Node(22, Position(180, 60)), Node(44, Position(210, 60))], 0.8, 30, 1))
    campus_shahe.road.append(Road(52, [Node(44, Position(210, 60)), Node(49, Position(240, 60))], 0.8, 30, 1))
    campus_shahe.road.append(Road(53, [Node(49, Position(240, 60)), Node(50, Position(270, 60))], 0.8, 30, 1))
    campus_shahe.road.append(Road(54, [Node(50, Position(270, 60)), Node(52, Position(300, 60))], 0.8, 30, 1))
    campus_shahe.road.append(Road(55, [Node(49, Position(240, 60)), Node(45, Position(240, 80))], 0.8, 20, 1))
    campus_shahe.road.append(Road(56, [Node(45, Position(240, 80)), Node(54, Position(240, 100))], 0.8, 20, 1))
    campus_shahe.road.append(Road(57, [Node(54, Position(240, 100)), Node(55, Position(270, 100))], 0.6, 30, 1))
    campus_shahe.road.append(Road(58, [Node(54, Position(240, 100)), Node(53, Position(240, 130))], 0.6, 30, 1))
    campus_shahe.road.append(Road(59, [Node(51, Position(300, 10)), Node(52, Position(300, 60))], 1, 50, 1))
    campus_shahe.road.append(Road(60, [Node(52, Position(300, 60)), Node(56, Position(300, 130))], 1, 70, 1))
    campus_shahe.road.append(Road(61, [Node(25, Position(180, 130)), Node(53, Position(240, 130))], 1, 60, 1))
    campus_shahe.road.append(Road(62, [Node(53, Position(240, 130)), Node(56, Position(300, 130))], 1, 60, 1))
    campus_shahe.road.append(Road(63, [Node(27, Position(180, 210)), Node(58, Position(250, 210))], 0.8, 70, 0))
    campus_shahe.road.append(Road(64, [Node(58, Position(250, 210)), Node(57, Position(300, 210))], 0.8, 50, 0))
    campus_shahe.road.append(Road(65, [Node(29, Position(180, 250)), Node(60, Position(250, 250))], 0.8, 70, 0))
    campus_shahe.road.append(Road(66, [Node(60, Position(250, 250)), Node(61, Position(300, 250))], 0.8, 50, 0))
    campus_shahe.road.append(Road(67, [Node(41, Position(180, 310)), Node(62, Position(240, 310))], 0.8, 60, 0))
    campus_shahe.road.append(Road(68, [Node(62, Position(240, 310)), Node(63, Position(250, 280))], 0.8, 32, 0))
    campus_shahe.road.append(Road(69, [Node(56, Position(300, 130)), Node(70, Position(300, 150))], 1, 20, 1))
    campus_shahe.road.append(Road(70, [Node(70, Position(300, 150)), Node(71, Position(300, 170))], 1, 20, 1))
    campus_shahe.road.append(Road(71, [Node(71, Position(300, 170)), Node(72, Position(300, 190))], 1, 20, 1))
    campus_shahe.road.append(Road(72, [Node(72, Position(300, 190)), Node(57, Position(300, 210))], 1, 20, 1))
    campus_shahe.road.append(Road(73, [Node(57, Position(300, 210)), Node(61, Position(300, 250))], 0.8, 40, 0))
    campus_shahe.road.append(Road(74, [Node(61, Position(300, 250)), Node(64, Position(300, 310))], 1, 60, 1))
    campus_shahe.road.append(Road(75, [Node(60, Position(250, 250)), Node(63, Position(250, 280))], 0.8, 30, 0))
    campus_shahe.road.append(Road(76, [Node(51, Position(300, 10)), Node(65, Position(420, 10))], 0.6, 120, 0))
    campus_shahe.road.append(Road(77, [Node(56, Position(300, 130)), Node(69, Position(420, 130))], 1, 120, 1))
    campus_shahe.road.append(Road(78, [Node(57, Position(300, 210)), Node(59, Position(350, 210))], 0.8, 50, 0))
    campus_shahe.road.append(Road(79, [Node(59, Position(350, 210)), Node(74, Position(420, 210))], 0.8, 70, 0))
    campus_shahe.road.append(Road(80, [Node(61, Position(300, 250)), Node(75, Position(420, 250))], 1, 120, 1))
    campus_shahe.road.append(Road(81, [Node(65, Position(420, 10)), Node(66, Position(420, 60))], 1, 50, 1))
    campus_shahe.road.append(Road(82, [Node(66, Position(420, 60)), Node(67, Position(420, 70))], 1, 10, 1))
    campus_shahe.road.append(Road(83, [Node(67, Position(420, 70)), Node(68, Position(420, 100))], 1, 30, 1))
    campus_shahe.road.append(Road(84, [Node(68, Position(420, 100)), Node(69, Position(420, 130))], 1, 30, 1))
    campus_shahe.road.append(Road(85, [Node(69, Position(420, 130)), Node(73, Position(420, 150))], 1, 20, 1))
    campus_shahe.road.append(Road(86, [Node(73, Position(420, 150)), Node(74, Position(420, 210))], 1, 60, 1))
    campus_shahe.road.append(Road(87, [Node(74, Position(420, 210)), Node(75, Position(420, 250))], 1, 40, 1))
    campus_shahe.road.append(Road(88, [Node(75, Position(420, 250)), Node(76, Position(420, 280))], 1, 30, 1))
    campus_shahe.road.append(Road(89, [Node(75, Position(420, 250)), Node(77, Position(450, 250))], 0.8, 30, 0))
    campus_shahe.road.append(Road(90, [Node(35, Position(130, 215)), Node(37, Position(140, 210))], 0.8, 11, 0))
    campus_shahe.road.append(Road(91, [Node(20, Position(120, 160)), Node(39, Position(140, 180))], 0.8, 28, 0))


    '''初始化完成'''
    campus.append(campus_shahe)


    '''海淀校区数据初始化'''
    campus_haidian.node.append(Node(0, Position(30, 452.5)))
    campus_haidian.node.append(Node(1, Position(62.5, 452.5)))
    campus_haidian.node.append(Node(2, Position(127.5, 452.5)))
    campus_haidian.node.append(Node(3, Position(152.5, 452.5)))
    campus_haidian.node.append(Node(4, Position(152.5, 475)))
    campus_haidian.node.append(Node(5, Position(152.5, 537.5)))
    campus_haidian.node.append(Node(6, Position(205, 537.5)))
    campus_haidian.node.append(Node(7, Position(205, 575)))
    campus_haidian.node.append(Node(8, Position(330, 452.5)))
    campus_haidian.node.append(Node(9, Position(330, 480)))
    campus_haidian.node.append(Node(10, Position(355, 480)))
    campus_haidian.node.append(Node(11, Position(375, 480)))
    campus_haidian.node.append(Node(12, Position(152.5, 427.5)))
    campus_haidian.node.append(Node(13, Position(30, 427.5)))
    campus_haidian.node.append(Node(14, Position(30, 400)))
    campus_haidian.node.append(Node(15, Position(30, 367.5)))
    campus_haidian.node.append(Node(16, Position(87.5, 367.5)))
    campus_haidian.node.append(Node(17, Position(152.5, 367.5)))
    campus_haidian.node.append(Node(18, Position(152.5, 400)))
    campus_haidian.node.append(Node(19, Position(212.5, 367.5)))
    campus_haidian.node.append(Node(20, Position(265, 367.5)))
    campus_haidian.node.append(Node(21, Position(275, 367.5)))
    campus_haidian.node.append(Node(22, Position(265, 400)))
    campus_haidian.node.append(Node(23, Position(265, 427.5)))
    campus_haidian.node.append(Node(24, Position(325, 427.5)))
    campus_haidian.node.append(Node(25, Position(325, 367.5)))
    campus_haidian.node.append(Node(26, Position(30, 340)))
    campus_haidian.node.append(Node(27, Position(0, 340)))
    campus_haidian.node.append(Node(28, Position(30, 290)))
    campus_haidian.node.append(Node(29, Position(152.5, 290)))
    campus_haidian.node.append(Node(30, Position(292.5, 427.5)))
    campus_haidian.node.append(Node(31, Position(152.5, 435)))
    campus_haidian.node.append(Node(32, Position(215, 290)))
    campus_haidian.node.append(Node(33, Position(275, 290)))
    campus_haidian.node.append(Node(34, Position(275, 337.5)))
    campus_haidian.node.append(Node(35, Position(300, 290)))
    campus_haidian.node.append(Node(36, Position(325, 290)))
    campus_haidian.node.append(Node(37, Position(325, 350)))
    campus_haidian.node.append(Node(38, Position(325, 262.5)))
    campus_haidian.node.append(Node(39, Position(325, 225)))
    campus_haidian.node.append(Node(40, Position(350, 225)))
    campus_haidian.node.append(Node(41, Position(365, 225)))
    campus_haidian.node.append(Node(42, Position(400, 225)))
    campus_haidian.node.append(Node(43, Position(275, 225)))
    campus_haidian.node.append(Node(44, Position(275, 280)))
    campus_haidian.node.append(Node(45, Position(217.5, 225)))
    campus_haidian.node.append(Node(46, Position(152.5, 225)))
    campus_haidian.node.append(Node(47, Position(152.5, 237.5)))
    campus_haidian.node.append(Node(48, Position(152.5, 267.5)))
    campus_haidian.node.append(Node(49, Position(87.5, 290)))
    campus_haidian.node.append(Node(50, Position(30, 257.5)))
    campus_haidian.node.append(Node(51, Position(30, 225)))
    campus_haidian.node.append(Node(52, Position(62.5, 225)))
    campus_haidian.node.append(Node(53, Position(87.5, 225)))
    campus_haidian.node.append(Node(54, Position(120, 225)))
    campus_haidian.node.append(Node(55, Position(30, 152.5)))
    campus_haidian.node.append(Node(56, Position(62.5, 152.5)))
    campus_haidian.node.append(Node(57, Position(87.5, 152.5)))
    campus_haidian.node.append(Node(58, Position(120, 152.5)))
    campus_haidian.node.append(Node(59, Position(152.5, 152.5)))
    campus_haidian.node.append(Node(60, Position(152.5, 175)))
    campus_haidian.node.append(Node(61, Position(182.5, 150)))
    campus_haidian.node.append(Node(62, Position(202.5, 150)))
    campus_haidian.node.append(Node(63, Position(250, 150)))
    campus_haidian.node.append(Node(64, Position(275, 150)))
    campus_haidian.node.append(Node(65, Position(275, 155)))
    campus_haidian.node.append(Node(66, Position(290, 155)))
    campus_haidian.node.append(Node(67, Position(350, 155)))
    campus_haidian.node.append(Node(68, Position(275, 202.5)))
    campus_haidian.node.append(Node(69, Position(380, 155)))
    campus_haidian.node.append(Node(70, Position(380, 50)))
    campus_haidian.node.append(Node(71, Position(400, 50)))
    campus_haidian.node.append(Node(72, Position(355, 50)))
    campus_haidian.node.append(Node(73, Position(295, 50)))
    campus_haidian.node.append(Node(74, Position(275, 50)))
    campus_haidian.node.append(Node(75, Position(275, 0)))
    campus_haidian.node.append(Node(76, Position(275, 37.5)))
    campus_haidian.node.append(Node(77, Position(275, 100)))
    campus_haidian.node.append(Node(78, Position(250, 100)))
    campus_haidian.node.append(Node(79, Position(197.5, 100)))
    campus_haidian.node.append(Node(80, Position(275, 122.5)))
    campus_haidian.node.append(Node(81, Position(182.5, 100)))
    campus_haidian.node.append(Node(82, Position(152.5, 125)))
    campus_haidian.node.append(Node(83, Position(120, 125)))
    campus_haidian.node.append(Node(84, Position(87.5, 125)))
    campus_haidian.node.append(Node(85, Position(62.5, 125)))
    campus_haidian.node.append(Node(86, Position(50, 125)))
    campus_haidian.node.append(Node(87, Position(30, 100)))
    campus_haidian.node.append(Node(88, Position(30, 87.5)))
    campus_haidian.node.append(Node(89, Position(30, 67.5)))
    campus_haidian.node.append(Node(90, Position(87.5, 100)))
    campus_haidian.node.append(Node(91, Position(87.5, 87.5)))
    campus_haidian.node.append(Node(92, Position(87.5, 67.5)))
    campus_haidian.node.append(Node(93, Position(62.5, 67.5)))
    campus_haidian.node.append(Node(94, Position(87.5, 40)))
    campus_haidian.node.append(Node(95, Position(87.5, 52.5)))
    campus_haidian.node.append(Node(96, Position(75, 40)))
    campus_haidian.node.append(Node(97, Position(37.5, 40)))
    campus_haidian.node.append(Node(98, Position(87.5, 12.5)))
    campus_haidian.node.append(Node(99, Position(152.5, 0)))
    campus_haidian.node.append(Node(100, Position(152.5, 27.5)))
    campus_haidian.node.append(Node(101, Position(152.5, 67.5)))
    campus_haidian.node.append(Node(102, Position(120, 67.5)))
    campus_haidian.node.append(Node(103, Position(152.5, 87.5)))
    campus_haidian.node.append(Node(104, Position(152.5, 100)))
    campus_haidian.node.append(Node(105, Position(152.5, 42.5)))
    campus_haidian.node.append(Node(106, Position(87.5, 175)))
    campus_haidian.node.append(Node(107, Position(152.5, 500)))
    campus_haidian.node.append(Node(108, Position(152.5, 150)))
    campus_haidian.node.append(Node(109, Position(152.5, 12.5)))
    campus_haidian.road.append(Road(0, [Node(4, Position(152.5, 475)), Node(107, Position(152.5, 500))], 1, 25, 1))
    campus_haidian.road.append(Road(1, [Node(0, Position(30, 452.5)), Node(1, Position(62.5, 452.5))], 0.9, 32.5, 1))
    campus_haidian.road.append(Road(2, [Node(1, Position(62.5, 452.5)), Node(2, Position(127.5, 452.5))], 0.9, 65, 1))
    campus_haidian.road.append(Road(3, [Node(2, Position(127.5, 452.5)), Node(3, Position(152.5, 452.5))], 0.9, 25, 1))
    campus_haidian.road.append(Road(4, [Node(3, Position(152.5, 452.5)), Node(4, Position(152.5, 475))], 1, 25, 1))
    campus_haidian.road.append(Road(5, [Node(107, Position(152.5, 500)), Node(5, Position(152.5, 537.5))], 1, 37.5, 1))
    campus_haidian.road.append(Road(6, [Node(5, Position(152.5, 537.5)), Node(6, Position(205, 537.5))], 1, 52.5, 1))
    campus_haidian.road.append(Road(7, [Node(6, Position(205, 537.5)), Node(7, Position(205, 575))], 1, 37.5, 1))
    campus_haidian.road.append(Road(8, [Node(31, Position(152.5, 435)), Node(3, Position(152.5, 452.5))], 0.9, 17.5, 1))
    campus_haidian.road.append(Road(9, [Node(3, Position(152.5, 452.5)), Node(8, Position(330, 452.5))], 0.9, 177.5, 1))
    campus_haidian.road.append(Road(10, [Node(8, Position(330, 452.5)), Node(9, Position(330, 480))], 1, 27.5, 1))
    campus_haidian.road.append(Road(11, [Node(9, Position(330, 480)), Node(10, Position(355, 480))], 1, 25, 1))
    campus_haidian.road.append(Road(12, [Node(10, Position(355, 480)), Node(11, Position(375, 480))], 1, 20, 1))
    campus_haidian.road.append(Road(13, [Node(12, Position(152.5, 427.5)), Node(31, Position(152.5, 435))], 0.9, 7.5, 1))
    campus_haidian.road.append(Road(14, [Node(13, Position(30, 427.5)), Node(12, Position(152.5, 427.5))], 1, 122.5, 1))
    campus_haidian.road.append(Road(15, [Node(14, Position(30, 400)), Node(13, Position(30, 427.5))], 0.6, 27.5, 1))
    campus_haidian.road.append(Road(16, [Node(15, Position(30, 367.5)), Node(14, Position(30, 400))], 0.6, 32.5, 1))
    campus_haidian.road.append(Road(17, [Node(15, Position(30, 367.5)), Node(16, Position(87.5, 367.5))], 0.6, 57.5, 1))
    campus_haidian.road.append(Road(18, [Node(16, Position(87.5, 367.5)), Node(17, Position(152.5, 367.5))], 0.6, 65, 1))
    campus_haidian.road.append(Road(19, [Node(17, Position(152.5, 367.5)), Node(18, Position(152.5, 400))], 0.8, 32.5, 1))
    campus_haidian.road.append(Road(20, [Node(18, Position(152.5, 400)), Node(12, Position(152.5, 427.5))], 0.8, 27.5, 1))
    campus_haidian.road.append(Road(21, [Node(19, Position(212.5, 367.5)), Node(20, Position(265, 367.5))], 0.6, 52.5, 1))
    campus_haidian.road.append(Road(22, [Node(12, Position(152.5, 427.5)), Node(23, Position(265, 427.5))], 1, 112.5, 1))
    campus_haidian.road.append(Road(23, [Node(23, Position(265, 427.5)), Node(30, Position(292.5, 427.5))], 0.9, 27.5, 1))
    campus_haidian.road.append(Road(24, [Node(30, Position(292.5, 427.5)), Node(24, Position(325, 427.5))], 0.9, 32.5, 1))
    campus_haidian.road.append(Road(25, [Node(22, Position(265, 400)), Node(23, Position(265, 427.5))], 0.7, 27.5, 1))
    campus_haidian.road.append(Road(26, [Node(20, Position(265, 367.5)), Node(22, Position(265, 400))], 0.7, 32.5, 1))
    campus_haidian.road.append(Road(27, [Node(20, Position(265, 367.5)), Node(21, Position(275, 367.5))], 0.7, 10, 1))
    campus_haidian.road.append(Road(28, [Node(21, Position(275, 367.5)), Node(25, Position(325, 367.5))], 0.8, 50, 1))
    campus_haidian.road.append(Road(29, [Node(25, Position(325, 367.5)), Node(24, Position(325, 427.5))], 1, 60, 1))
    campus_haidian.road.append(Road(30, [Node(37, Position(325, 350)), Node(25, Position(325, 367.5))], 1, 17.5, 1))
    campus_haidian.road.append(Road(31, [Node(36, Position(325, 290)), Node(37, Position(325, 350))], 1, 60, 1))
    campus_haidian.road.append(Road(32, [Node(35, Position(300, 290)), Node(36, Position(325, 290))], 1, 25, 1))
    campus_haidian.road.append(Road(33, [Node(33, Position(275, 290)), Node(35, Position(300, 290))], 0.9, 25, 1))
    campus_haidian.road.append(Road(34, [Node(33, Position(275, 290)), Node(34, Position(275, 337.5))], 0.8, 47.5, 1))
    campus_haidian.road.append(Road(35, [Node(34, Position(275, 337.5)), Node(21, Position(275, 367.5))], 0.8, 30, 1))
    campus_haidian.road.append(Road(36, [Node(32, Position(215, 290)), Node(33, Position(275, 290))], 0.7, 60, 1))
    campus_haidian.road.append(Road(37, [Node(29, Position(152.5, 290)), Node(32, Position(215, 290))], 0.7, 62.5, 1))
    campus_haidian.road.append(Road(38, [Node(29, Position(152.5, 290)), Node(17, Position(152.5, 367.5))], 0.8, 77.5, 1))
    campus_haidian.road.append(Road(39, [Node(49, Position(87.5, 290)), Node(29, Position(152.5, 290))], 0.7, 65, 1))
    campus_haidian.road.append(Road(40, [Node(28, Position(30, 290)), Node(49, Position(87.5, 290))], 0.9, 57.5, 1))
    campus_haidian.road.append(Road(41, [Node(28, Position(30, 290)), Node(26, Position(30, 340))], 0.9, 50, 1))
    campus_haidian.road.append(Road(42, [Node(26, Position(30, 340)), Node(15, Position(30, 367.5))], 0.9, 27.5, 1))
    campus_haidian.road.append(Road(43, [Node(27, Position(0, 340)), Node(26, Position(30, 340))], 1.0, 30, 1))
    campus_haidian.road.append(Road(44, [Node(50, Position(30, 257.5)), Node(28, Position(30, 290))], 0.6, 32.5, 1))
    campus_haidian.road.append(Road(45, [Node(51, Position(30, 225)), Node(50, Position(30, 257.5))], 0.6, 32.5, 1))
    campus_haidian.road.append(Road(46, [Node(51, Position(30, 225)), Node(52, Position(62.5, 225))], 0.6, 32.5, 1))
    campus_haidian.road.append(Road(47, [Node(52, Position(62.5, 225)), Node(53, Position(87.5, 225))], 0.6, 25, 1))
    campus_haidian.road.append(Road(48, [Node(53, Position(87.5, 225)), Node(54, Position(120, 225))], 0.6, 32.5, 1))
    campus_haidian.road.append(Road(49, [Node(54, Position(120, 225)), Node(46, Position(152.5, 225))], 0.6, 32.5, 1))
    campus_haidian.road.append(Road(50, [Node(46, Position(152.5, 225)), Node(47, Position(152.5, 237.5))], 0.7, 12.5, 1))
    campus_haidian.road.append(Road(51, [Node(47, Position(152.5, 237.5)), Node(48, Position(152.5, 267.5))], 0.7, 30, 1))
    campus_haidian.road.append(Road(52, [Node(48, Position(152.5, 267.5)), Node(29, Position(152.5, 290))], 0.7, 22.5, 1))
    campus_haidian.road.append(Road(53, [Node(46, Position(152.5, 225)), Node(45, Position(217.5, 225))], 0.8, 65, 1))
    campus_haidian.road.append(Road(54, [Node(45, Position(217.5, 225)), Node(43, Position(275, 225))], 0.8, 57.5, 1))
    campus_haidian.road.append(Road(55, [Node(43, Position(275, 225)), Node(44, Position(275, 280))], 0.9, 55, 1))
    campus_haidian.road.append(Road(56, [Node(44, Position(275, 280)), Node(33, Position(275, 290))], 0.8, 10, 1))
    campus_haidian.road.append(Road(57, [Node(43, Position(275, 225)), Node(39, Position(325, 225))], 0.9, 50, 1))
    campus_haidian.road.append(Road(58, [Node(39, Position(325, 225)), Node(38, Position(325, 262.5))], 0.8, 37.5, 1))
    campus_haidian.road.append(Road(59, [Node(38, Position(325, 262.5)), Node(36, Position(325, 290))], 0.8, 27.5, 1))
    campus_haidian.road.append(Road(60, [Node(39, Position(325, 225)), Node(40, Position(350, 225))], 0.8, 25, 1))
    campus_haidian.road.append(Road(61, [Node(40, Position(350, 225)), Node(41, Position(365, 225))], 0.8, 15, 1))
    campus_haidian.road.append(Road(62, [Node(41, Position(365, 225)), Node(42, Position(400, 225))], 0.8, 35, 1))
    campus_haidian.road.append(Road(63, [Node(67, Position(350, 155)), Node(40, Position(350, 225))], 0.9, 70, 1))
    campus_haidian.road.append(Road(64, [Node(67, Position(350, 155)), Node(69, Position(380, 155))], 1, 30, 1))
    campus_haidian.road.append(Road(65, [Node(66, Position(290, 155)), Node(67, Position(350, 155))], 0.8, 60, 1))
    campus_haidian.road.append(Road(66, [Node(65, Position(275, 155)), Node(66, Position(290, 155))], 0.8, 15, 1))
    campus_haidian.road.append(Road(67, [Node(65, Position(275, 155)), Node(68, Position(275, 202.5))], 0.8, 47.5, 1))
    campus_haidian.road.append(Road(68, [Node(68, Position(275, 202.5)), Node(43, Position(275, 225))], 0.8, 22.5, 1))
    campus_haidian.road.append(Road(69, [Node(64, Position(275, 150)), Node(65, Position(275, 155))], 0.7, 5, 1))
    campus_haidian.road.append(Road(70, [Node(63, Position(250, 150)), Node(64, Position(275, 150))], 0.7, 25, 1))
    campus_haidian.road.append(Road(71, [Node(62, Position(202.5, 150)), Node(63, Position(250, 150))], 0.7, 47.5, 1))
    campus_haidian.road.append(Road(72, [Node(61, Position(182.5, 150)), Node(62, Position(202.5, 150))], 0.7, 20, 1))
    campus_haidian.road.append(Road(73, [Node(108, Position(152.5, 150)), Node(61, Position(182.5, 150))], 0.7, 30, 1))
    campus_haidian.road.append(Road(74, [Node(59, Position(152.5, 152.5)), Node(60, Position(152.5, 175))], 0.7, 22.5, 1))
    campus_haidian.road.append(Road(75, [Node(60, Position(152.5, 175)), Node(46, Position(152.5, 225))], 0.7, 50, 1))
    campus_haidian.road.append(Road(76, [Node(106, Position(87.5, 175)), Node(53, Position(87.5, 225))], 0.6, 50, 1))
    campus_haidian.road.append(Road(77, [Node(55, Position(30, 152.5)), Node(51, Position(30, 225))], 0.6, 72.5, 1))
    campus_haidian.road.append(Road(78, [Node(55, Position(30, 152.5)), Node(56, Position(62.5, 152.5))], 0.6, 32.5, 1))
    campus_haidian.road.append(Road(79, [Node(56, Position(62.5, 152.5)), Node(57, Position(87.5, 152.5))], 0.6, 25, 1))
    campus_haidian.road.append(Road(80, [Node(57, Position(87.5, 152.5)), Node(58, Position(120, 152.5))], 0.6, 32.5, 1))
    campus_haidian.road.append(Road(81, [Node(58, Position(120, 152.5)), Node(59, Position(152.5, 152.5))], 0.6, 32.5, 1))
    campus_haidian.road.append(Road(82, [Node(84, Position(87.5, 125)), Node(57, Position(87.5, 152.5))], 0.6, 27.5, 1))
    campus_haidian.road.append(Road(83, [Node(85, Position(62.5, 125)), Node(84, Position(87.5, 125))], 0.6, 25, 1))
    campus_haidian.road.append(Road(84, [Node(86, Position(50, 125)), Node(85, Position(62.5, 125))], 0.6, 12.5, 1))
    campus_haidian.road.append(Road(85, [Node(87, Position(30, 100)), Node(55, Position(30, 152.5))], 0.6, 52.5, 1))
    campus_haidian.road.append(Road(86, [Node(87, Position(30, 100)), Node(90, Position(87.5, 100))], 0.6, 57.5, 1))
    campus_haidian.road.append(Road(87, [Node(90, Position(87.5, 100)), Node(84, Position(87.5, 125))], 0.6, 25, 1))
    campus_haidian.road.append(Road(88, [Node(84, Position(87.5, 125)), Node(83, Position(120, 125))], 0.6, 32.5, 1))
    campus_haidian.road.append(Road(89, [Node(83, Position(120, 125)), Node(82, Position(152.5, 125))], 0.6, 32.5, 1))
    campus_haidian.road.append(Road(90, [Node(90, Position(87.5, 100)), Node(104, Position(152.5, 100))], 0.5, 65, 1))
    campus_haidian.road.append(Road(91, [Node(82, Position(152.5, 125)), Node(108, Position(152.5, 150))], 0.7, 25, 1))
    campus_haidian.road.append(Road(92, [Node(104, Position(152.5, 100)), Node(82, Position(152.5, 125))], 0.7, 25, 1))
    campus_haidian.road.append(Road(93, [Node(104, Position(152.5, 100)), Node(81, Position(182.5, 100))], 0.7, 25, 1))
    campus_haidian.road.append(Road(94, [Node(81, Position(182.5, 100)), Node(61, Position(182.5, 150))], 0.9, 50, 1))
    campus_haidian.road.append(Road(95, [Node(81, Position(182.5, 100)), Node(79, Position(197.5, 100))], 0.8, 15, 1))
    campus_haidian.road.append(Road(96, [Node(78, Position(250, 100)), Node(79, Position(197.5, 100))], 0.8, 52.5, 1))
    campus_haidian.road.append(Road(97, [Node(78, Position(250, 100)), Node(77, Position(275, 100))], 0.8, 25, 1))
    campus_haidian.road.append(Road(98, [Node(80, Position(275, 122.5)), Node(77, Position(275, 100))], 0.7, 22.5, 1))
    campus_haidian.road.append(Road(99, [Node(80, Position(275, 122.5)), Node(64, Position(275, 150))], 0.7, 27.5, 1))
    campus_haidian.road.append(Road(100, [Node(74, Position(275, 50)), Node(77, Position(275, 100))], 0.9, 50, 1))
    campus_haidian.road.append(Road(101, [Node(74, Position(275, 50)), Node(73, Position(295, 50))], 0.9, 20, 1))
    campus_haidian.road.append(Road(102, [Node(72, Position(355, 50)), Node(73, Position(295, 50))], 1, 60, 1))
    campus_haidian.road.append(Road(103, [Node(72, Position(355, 50)), Node(70, Position(380, 50))], 1, 25, 1))
    campus_haidian.road.append(Road(104, [Node(69, Position(380, 155)), Node(70, Position(380, 50))], 1, 105, 1))
    campus_haidian.road.append(Road(105, [Node(75, Position(275, 0)), Node(76, Position(275, 37.5))], 1, 37.5, 1))
    campus_haidian.road.append(Road(106, [Node(74, Position(275, 50)), Node(76, Position(275, 37.5))], 0.9, 12.5, 1))
    campus_haidian.road.append(Road(107, [Node(104, Position(152.5, 100)), Node(103, Position(152.5, 87.5))], 0.8, 12.5, 1))
    campus_haidian.road.append(Road(108, [Node(101, Position(152.5, 67.5)), Node(103, Position(152.5, 87.5))], 0.8, 20, 1))
    campus_haidian.road.append(Road(109, [Node(101, Position(152.5, 67.5)), Node(105, Position(152.5, 42.5))], 0.8, 25, 1))
    campus_haidian.road.append(Road(110, [Node(100, Position(152.5, 27.5)), Node(105, Position(152.5, 42.5))], 0.9, 15, 1))
    campus_haidian.road.append(Road(111, [Node(109, Position(152.5, 12.5)), Node(100, Position(152.5, 27.5))], 0.9, 27.5, 1))
    campus_haidian.road.append(Road(112, [Node(109, Position(152.5, 12.5)), Node(98, Position(87.5, 12.5))], 1, 65, 1))
    campus_haidian.road.append(Road(113, [Node(94, Position(87.5, 40)), Node(98, Position(87.5, 12.5))], 0.9, 27.5, 1))
    campus_haidian.road.append(Road(114, [Node(94, Position(87.5, 40)), Node(96, Position(75, 40))], 0.9, 12.5, 1))
    campus_haidian.road.append(Road(115, [Node(97, Position(37.5, 40)), Node(96, Position(75, 40))], 1, 37.5, 1))
    campus_haidian.road.append(Road(116, [Node(95, Position(87.5, 52.5)), Node(94, Position(87.5, 40))], 0.8, 12.5, 1))
    campus_haidian.road.append(Road(117, [Node(95, Position(87.5, 52.5)), Node(92, Position(87.5, 67.5))], 0.8, 15, 1))
    campus_haidian.road.append(Road(118, [Node(93, Position(62.5, 67.5)), Node(92, Position(87.5, 67.5))], 0.8, 25, 1))
    campus_haidian.road.append(Road(119, [Node(93, Position(62.5, 67.5)), Node(89, Position(30, 67.5))], 0.8, 32.5, 1))
    campus_haidian.road.append(Road(120, [Node(88, Position(30, 87.5)), Node(89, Position(30, 67.5))], 0.8, 20, 1))
    campus_haidian.road.append(Road(121, [Node(88, Position(30, 87.5)), Node(87, Position(30, 100))], 0.7, 12.5, 1))
    campus_haidian.road.append(Road(122, [Node(92, Position(87.5, 67.5)), Node(91, Position(87.5, 87.5))], 0.6, 20, 1))
    campus_haidian.road.append(Road(123, [Node(90, Position(87.5, 100)), Node(91, Position(87.5, 87.5))], 0.6, 12.5, 1))
    campus_haidian.road.append(Road(124, [Node(92, Position(87.5, 67.5)), Node(102, Position(120, 67.5))], 0.7, 32.5, 1))
    campus_haidian.road.append(Road(125, [Node(101, Position(152.5, 67.5)), Node(102, Position(120, 67.5))], 0.7, 32.5, 1))
    campus_haidian.road.append(Road(126, [Node(57, Position(87.5, 152.5)), Node(106, Position(87.5, 175))], 0.6, 22.5, 1))
    campus_haidian.road.append(Road(127, [Node(17, Position(152.5, 367.5)), Node(19, Position(212.5, 367.5))], 0.9, 60, 1))
    campus_haidian.road.append(Road(128, [Node(108, Position(152.5, 150)), Node(59, Position(152.5, 152.5))], 0.8, 2.5, 1))
    campus_haidian.road.append(Road(129, [Node(71, Position(400, 50)), Node(70, Position(380, 50))], 1, 20, 1))
    campus_haidian.road.append(Road(130, [Node(109, Position(152.5, 12.5)), Node(99, Position(152.5, 0))], 1, 12.5, 1))
    campus_haidian.building.append(Building(0, "家属区", Position(15, 501.25), [], [], "v", 10))
    campus_haidian.building.append(Building(1, "校医院", Position(91.25, 440), [Node(2, Position(127.5, 452.5))], [], "h", 10))
    campus_haidian.building.append(Building(2, "零壹时光咖啡", Position(62.5, 475), [Node(1, Position(62.5, 452.5))], [], "h", 7))
    campus_haidian.building.append(Building(3, "南区超市", Position(121.88, 475), [Node(4, Position(152.5, 475))], [], "h", 7))
    campus_haidian.building.append(Building(4, "家属区", Position(78.75, 504.69), [], [], "h", 10))
    campus_haidian.building.append(Building(5, "家属区", Position(78.75, 553.75), [], [], "h", 10))
    campus_haidian.building.append(Building(6, "商店", Position(137.19, 500), [Node(107, Position(152.5, 500))], [], "h", 8))
    campus_haidian.building.append(Building(7, "电信营业厅", Position(137.19, 521.25), [], [], "v", 4))
    campus_haidian.building.append(Building(8, "家属区", Position(150, 563.12), [], [], "h", 9))
    campus_haidian.building.append(Building(9, "火车票代售点", Position(181.25, 563.12), [], [], "h", 4))
    campus_haidian.building.append(Building(10, "中门邮局", Position(170, 435), [Node(31, Position(152.5, 435))], [], "h", 5))
    campus_haidian.building.append(Building(11, "家属区", Position(260, 440), [], [], "h", 9))
    campus_haidian.building.append(Building(12, "全名健身", Position(227.5, 475), [], [], "h", 7))
    campus_haidian.building.append(Building(13, "家属区", Position(227.5, 510), [], [], "h", 9))
    campus_haidian.building.append(Building(14, "北邮幼儿园", Position(295.5, 495), [], [], "v", 7))
    campus_haidian.building.append(Building(15, "家属区", Position(232.5, 552.5), [], [], "h", 9))
    campus_haidian.building.append(Building(16, "北京交通大学附属中学", Position(295.5, 552.5), [], [], "h", 7))
    campus_haidian.building.append(Building(17, "明光楼出版社", Position(365, 535), [Node(10, Position(355, 480))], [], "v", 7))
    campus_haidian.building.append(Building(18, "家属区", Position(355, 452.5), [], [], "v", 7))
    campus_haidian.building.append(Building(19, "体育场", Position(355, 372.5), [Node(37, Position(325, 350))], ["运动场"], "v", 9))
    campus_haidian.building.append(Building(20, "全名健身", Position(345, 310), [], [], "v", 5))
    campus_haidian.building.append(Building(21, "科学会堂", Position(300, 325), [Node(34, Position(275, 337.5)), Node(35, Position(300, 290))], [], "v", 8))
    campus_haidian.building.append(Building(22, "烈士墓", Position(315, 358.75), [], [], "h", 4))
    campus_haidian.building.append(Building(23, "创新中心", Position(297.5, 400), [Node(30, Position(292.5, 427.5))], [], "h", 8))
    campus_haidian.building.append(Building(24, "教二楼", Position(212.5, 400), [Node(18, Position(152.5, 400)), Node(19, Position(212.5, 367.5))], [], "h", 11))
    campus_haidian.building.append(Building(25, "主楼", Position(250, 332.5), [Node(32, Position(215, 290))], [], "h", 11))
    campus_haidian.building.append(Building(26, "音乐喷泉", Position(195, 332.5), [], [], "v", 8))
    campus_haidian.building.append(Building(27, "国旗", Position(175, 332.5), [], [], "v", 7))
    campus_haidian.building.append(Building(28, "校训石", Position(87.5, 328.75), [], [], "v", 7))
    campus_haidian.building.append(Building(29, "教三楼", Position(87.5, 400), [Node(14, Position(30, 400)), Node(16, Position(87.5, 367.5)), Node(18, Position(152.5, 400))], [], "h", 11))
    campus_haidian.building.append(Building(30, "校车车库", Position(15, 413.75), [], [], "v", 6))
    campus_haidian.building.append(Building(31, "停车坪", Position(15, 372.5), [], [], "v", 7))
    campus_haidian.building.append(Building(32, "移动营业厅", Position(10, 292.5), [Node(28, Position(30, 290))], [], "v", 5))
    campus_haidian.building.append(Building(33, "ATM", Position(10, 267.5), [], [], "h", 5))
    campus_haidian.building.append(Building(34, "邮局", Position(10, 257.5), [Node(50, Position(30, 257.5))], [], "h", 6))
    campus_haidian.building.append(Building(35, "鸿通楼", Position(10, 235), [Node(51, Position(30, 225))], [], "v", 6))
    campus_haidian.building.append(Building(36, "教四楼", Position(87.5, 257.5), [Node(48, Position(152.5, 267.5)), Node(49, Position(87.5, 290)), Node(50, Position(30, 257.5))], [], "h", 11))
    campus_haidian.building.append(Building(37, "教一楼", Position(215, 275), [Node(32, Position(215, 290)), Node(44, Position(275, 280)), Node(48, Position(152.5, 267.5))], [], "h", 11))
    campus_haidian.building.append(Building(38, "财务处", Position(172.5, 231.25), [Node(47, Position(152.5, 237.5))], [], "h", 7))
    campus_haidian.building.append(Building(39, "后勤楼", Position(172.5, 246.25), [Node(47, Position(152.5, 237.5))], [], "h", 7))
    campus_haidian.building.append(Building(40, "行政办公楼", Position(220, 240), [Node(45, Position(217.5, 225))], [], "h", 9))
    campus_haidian.building.append(Building(41, "体育馆", Position(350, 257.5), [Node(38, Position(325, 262.5)), Node(40, Position(350, 225))], [], "v", 10))
    campus_haidian.building.append(Building(42, "游泳馆", Position(375, 272.5), [Node(41, Position(365, 225))], [], "v", 9))
    campus_haidian.building.append(Building(43, "学29公寓", Position(365, 190), [Node(41, Position(365, 225))], [], "v", 6))
    campus_haidian.building.append(Building(44, "网球场排球场", Position(330, 190), [Node(39, Position(325, 225))], [], "v", 6))
    campus_haidian.building.append(Building(45, "篮球场", Position(300, 192.5), [Node(68, Position(275, 202.5))], [], "h", 8))
    campus_haidian.building.append(Building(46, "图书馆", Position(240, 187.5), [Node(45, Position(217.5, 225))], [], "h", 8))
    campus_haidian.building.append(Building(47, "时光广场", Position(182.5, 187.5), [], [], "h", 8))
    campus_haidian.building.append(Building(48, "学二公寓", Position(120, 210), [Node(54, Position(120, 225))], [], "h", 8))
    campus_haidian.building.append(Building(49, "学一公寓", Position(60, 210), [Node(52, Position(62.5, 225))], [], "h", 8))
    campus_haidian.building.append(Building(50, "商店泵房", Position(15, 200), [Node(55, Position(30, 152.5))], [], "h", 5))
    campus_haidian.building.append(Building(51, "学十三公寓", Position(12.5, 152.5), [Node(55, Position(30, 152.5))], [], "v", 8))
    campus_haidian.building.append(Building(52, "学三公寓", Position(60, 170), [Node(56, Position(62.5, 175))], [], "h", 8))
    campus_haidian.building.append(Building(53, "学四公寓", Position(120, 170), [Node(106, Position(87.5, 175)),Node(58, Position(120, 152.5)),Node(60, Position(152.5, 175))], [], "h", 8))
    campus_haidian.building.append(Building(54, "喷泉", Position(120, 140), [], [], "h", 8))
    campus_haidian.building.append(Building(55, "喷泉", Position(60, 140), [], [], "h", 8))
    campus_haidian.building.append(Building(56, "学五公寓", Position(60, 112.5), [Node(85, Position(62.5, 125))], [], "h", 8))
    campus_haidian.building.append(Building(57, "学八公寓", Position(120, 112.5), [Node(83, Position(120, 125))], [], "h", 8))
    campus_haidian.building.append(Building(58, "综合食堂", Position(120, 85), [Node(91, Position(87.5, 87.5)),Node(102, Position(120, 67.5)),Node(103, Position(152.5, 87.5))], [], "h", 9))
    campus_haidian.building.append(Building(59, "留学生公寓", Position(60, 85), [Node(93, Position(62.5, 67.5)),Node(91, Position(87.5, 87.5))], [], "h", 7))
    campus_haidian.building.append(Building(60, "青年公寓", Position(12.5, 87.5), [Node(88, Position(30, 87.5))], [], "v", 6))
    campus_haidian.building.append(Building(61, "北邮科技酒店", Position(17.5, 45), [Node(97, Position(37.5, 40))], [], "v", 7))
    campus_haidian.building.append(Building(62, "学九公寓", Position(52.5, 52.5), [Node(93, Position(62.5, 67.5))], [], "h", 7))
    campus_haidian.building.append(Building(63, "教九", Position(77.5, 55), [Node(95, Position(87.5, 52.5))], [], "v", 6))
    campus_haidian.building.append(Building(64, "学十一公寓", Position(60, 27.5), [Node(96, Position(75, 40))], [], "h", 7))
    campus_haidian.building.append(Building(65, "学十公寓", Position(120, 40), [Node(94, Position(87.5, 40)),Node(102, Position(120, 67.5)),Node(100, Position(152.5, 27.5))], [], "h", 9))
    campus_haidian.building.append(Building(66, "经管楼", Position(182.5, 27.5), [Node(105, Position(152.5, 42.5)),Node(109, Position(152.5, 12.5))], [], "h", 8))
    campus_haidian.building.append(Building(67, "学生活动中心", Position(182.5, 72), [Node(101, Position(152.5, 67.5)),Node(81, Position(182.5, 100))], [], "h", 7))
    campus_haidian.building.append(Building(68, "学六公寓", Position(240, 35), [Node(76, Position(275, 37.5))], [], "h", 8))
    campus_haidian.building.append(Building(69, "澡堂", Position(200, 90), [Node(79, Position(197.5, 100))], [], "h", 6))
    campus_haidian.building.append(Building(70, "联通营业厅", Position(210, 80), [Node(79, Position(197.5, 100))], [], "h", 6))
    campus_haidian.building.append(Building(71, "水房", Position(250, 90), [Node(78, Position(250, 100))], [], "h", 6))
    campus_haidian.building.append(Building(72, "锅炉房", Position(255, 80), [Node(78, Position(250, 100))], [], "h", 6))
    campus_haidian.building.append(Building(73, "学苑超市|maan|茗香吧", Position(230, 110), [Node(78, Position(250, 100)),Node(79, Position(197.5, 100)),Node(62, Position(202.5, 150)),Node(80, Position(275, 122.5))], [], "h", 6))
    campus_haidian.building.append(Building(74, "健康中心", Position(215, 130), [Node(62, Position(202.5, 150))], [], "h", 6))
    campus_haidian.building.append(Building(75, "教工餐厅", Position(250, 120), [Node(80, Position(275, 122.5))], [], "h", 6))
    campus_haidian.building.append(Building(76, "学苑书屋", Position(250, 140), [Node(63, Position(250, 150))], [], "h", 6))
    campus_haidian.building.append(Building(77, "报亭", Position(195, 130), [Node(62, Position(202.5, 150))], [], "v", 6))
    campus_haidian.building.append(Building(78, "家属区", Position(305, 25), [], [], "h", 9))
    campus_haidian.building.append(Building(79, "青年教师公寓", Position(352.5, 35), [Node(72, Position(355, 50))], [], "h", 7))
    campus_haidian.building.append(Building(80, "科研大楼", Position(305, 80), [Node(73, Position(295, 50)), Node(77, Position(275, 100))], [], "h", 9))
    campus_haidian.building.append(Building(81, "家属区", Position(355, 75), [], [], "h", 9))
    campus_haidian.building.append(Building(82, "学生食堂", Position(305, 130), [Node(64, Position(275, 150)), Node(66, Position(290, 155))], [], "h", 9))
    campus_haidian.building.append(Building(83, "家属区", Position(335, 130), [], [], "v", 8))
    campus_haidian.building.append(Building(84, "保卫处\n基建处", Position(360, 125), [Node(67, Position(350, 155))], [], "h", 8))
    campus_haidian.building.append(Building(85, "东北门", Position(406, 50), [Node(71, Position(400, 50))], [], "v", 7))
    campus_haidian.building.append(Building(86, "北门", Position(155, -5), [Node(99, Position(152.5, 0))], [], "h", 7))
    campus_haidian.building.append(Building(87, "西门", Position(-5, 340), [Node(27, Position(0, 340))], [], "v", 7))
    campus_haidian.building.append(Building(88, "南门", Position(205, 581), [Node(7, Position(205, 575))], [], "h", 7))
    campus_haidian.building.append(Building(89, "中门", Position(152.5, 450), [Node(3, Position(152.5, 452.5))], [], "h", 7))
    campus_haidian.building.append(Building(90, "东门", Position(405, 225), [Node(42, Position(400, 225))], [], "v", 7))

    '''初始化完成'''
    campus.append(campus_haidian)
    return


def initialize_student():
    now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    student.star_time = datetime.datetime.strptime(now, '%Y-%m-%d %H:%M:%S')
    student.time = student.star_time
    return


def initialize_bus():
    # 0为定点班车，1为公共汽车
    year = datetime.datetime.now().year
    month = datetime.datetime.now().month
    day = datetime.datetime.now().day
    time_list1 = []
    time_list1.append(datetime.datetime(year, month, day, 6, 50, 00))
    time_list1.append(datetime.datetime(year, month, day, 8, 30, 00))
    time_list1.append(datetime.datetime(year, month, day, 9, 50, 00))
    time_list1.append(datetime.datetime(year, month, day, 11, 40, 00))
    time_list1.append(datetime.datetime(year, month, day, 13, 00, 00))
    time_list1.append(datetime.datetime(year, month, day, 14, 20, 00))
    time_list1.append(datetime.datetime(year, month, day, 15, 45, 00))
    time_list1.append(datetime.datetime(year, month, day, 17, 00, 00))
    time_list1.append(datetime.datetime(year, month, day, 18, 25, 00))
    time_list1.append(datetime.datetime(year, month, day, 21, 10, 00))
    #时间表添加
    bus_table.append(Bus(0, time_list1, 10, 3600))
    time_list2 = []
    time_list2.append(datetime.datetime(year, month, day, 7, 00, 00))
    time_list2.append(datetime.datetime(year, month, day, 7, 15, 00))
    time_list2.append(datetime.datetime(year, month, day, 7, 30, 00))
    time_list2.append(datetime.datetime(year, month, day, 7, 45, 00))
    time_list2.append(datetime.datetime(year, month, day, 8, 00, 00))
    time_list2.append(datetime.datetime(year, month, day, 8, 15, 00))
    time_list2.append(datetime.datetime(year, month, day, 8, 30, 00))
    time_list2.append(datetime.datetime(year, month, day, 8, 45, 00))
    time_list2.append(datetime.datetime(year, month, day, 9, 00, 00))
    time_list2.append(datetime.datetime(year, month, day, 9, 15, 00))
    time_list2.append(datetime.datetime(year, month, day, 9, 30, 00))
    time_list2.append(datetime.datetime(year, month, day, 9, 45, 00))
    time_list2.append(datetime.datetime(year, month, day, 10, 00, 00))
    time_list2.append(datetime.datetime(year, month, day, 10, 15, 00))
    time_list2.append(datetime.datetime(year, month, day, 10, 30, 00))
    time_list2.append(datetime.datetime(year, month, day, 10, 45, 00))
    time_list2.append(datetime.datetime(year, month, day, 11, 00, 00))
    time_list2.append(datetime.datetime(year, month, day, 11, 15, 00))
    time_list2.append(datetime.datetime(year, month, day, 11, 30, 00))
    time_list2.append(datetime.datetime(year, month, day, 11, 45, 00))
    time_list2.append(datetime.datetime(year, month, day, 12, 00, 00))
    time_list2.append(datetime.datetime(year, month, day, 12, 15, 00))
    time_list2.append(datetime.datetime(year, month, day, 12, 30, 00))
    time_list2.append(datetime.datetime(year, month, day, 12, 45, 00))
    time_list2.append(datetime.datetime(year, month, day, 13, 00, 00))
    time_list2.append(datetime.datetime(year, month, day, 13, 15, 00))
    time_list2.append(datetime.datetime(year, month, day, 13, 30, 00))
    time_list2.append(datetime.datetime(year, month, day, 13, 45, 00))
    time_list2.append(datetime.datetime(year, month, day, 14, 00, 00))
    time_list2.append(datetime.datetime(year, month, day, 14, 15, 00))
    time_list2.append(datetime.datetime(year, month, day, 14, 30, 00))
    time_list2.append(datetime.datetime(year, month, day, 14, 45, 00))
    time_list2.append(datetime.datetime(year, month, day, 15, 00, 00))
    time_list2.append(datetime.datetime(year, month, day, 15, 15, 00))
    time_list2.append(datetime.datetime(year, month, day, 15, 30, 00))
    time_list2.append(datetime.datetime(year, month, day, 15, 45, 00))
    time_list2.append(datetime.datetime(year, month, day, 16, 00, 00))
    time_list2.append(datetime.datetime(year, month, day, 16, 15, 00))
    time_list2.append(datetime.datetime(year, month, day, 16, 30, 00))
    time_list2.append(datetime.datetime(year, month, day, 16, 45, 00))
    time_list2.append(datetime.datetime(year, month, day, 17, 00, 00))
    time_list2.append(datetime.datetime(year, month, day, 17, 15, 00))
    time_list2.append(datetime.datetime(year, month, day, 17, 30, 00))
    time_list2.append(datetime.datetime(year, month, day, 17, 45, 00))
    time_list2.append(datetime.datetime(year, month, day, 18, 00, 00))
    time_list2.append(datetime.datetime(year, month, day, 18, 15, 00))
    time_list2.append(datetime.datetime(year, month, day, 18, 30, 00))
    time_list2.append(datetime.datetime(year, month, day, 18, 45, 00))
    time_list2.append(datetime.datetime(year, month, day, 19, 00, 00))
    time_list2.append(datetime.datetime(year, month, day, 19, 15, 00))
    time_list2.append(datetime.datetime(year, month, day, 19, 30, 00))
    time_list2.append(datetime.datetime(year, month, day, 19, 45, 00))
    time_list2.append(datetime.datetime(year, month, day, 20, 00, 00))
    time_list2.append(datetime.datetime(year, month, day, 20, 15, 00))
    time_list2.append(datetime.datetime(year, month, day, 20, 30, 00))
    time_list2.append(datetime.datetime(year, month, day, 22, 40, 00))#20, 45, 00
    #时间表添加
    bus_table.append(Bus(1, time_list2, 2000, 7200))
    return
