# elevator **Repository Path**: xiangxiaoc/elevator ## Basic Information - **Project Name**: elevator - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-01-13 - **Last Updated**: 2022-01-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 电梯 ## 项目结构 ```text elevator |_ funcs/ 通用辅助小功能 |_ models/ 对象模型及方法定义,包含单元测试 |_ tests_cases/ 给定的几个测试案例 |_ main.go 项目主入口,当前用来跑所有的测试案例 |_ go.mod 模块,go版本声明 ``` ## 运行主入口 ```shell go run ./main.go ``` 当前 main.go 内配置了三个 Case,一次性执行 ## Case 1 运行示例 ```text 2022/01/14 11:43:28 Case 1 ===== 2022/01/14 11:43:28 目标楼层队列:[] 2022/01/14 11:43:28 目前没有人请求电梯,电梯状态:停止 ``` ## Case 2 运行示例 ```text 2022/01/14 11:43:28 Case 2 ===== 2022/01/14 11:43:28 电梯当前在 1 层 2022/01/14 11:43:28 小明在 3 层按了电梯 2022/01/14 11:43:28 目标楼层队列:[3] 2022/01/14 11:43:28 电梯上行,当前楼层:1 2022/01/14 11:43:29 电梯上行,当前楼层:2 2022/01/14 11:43:30 电梯已到达目的地,当前楼层:3 2022/01/14 11:43:30 电梯停止 ``` ## Case 3 运行示例 ```text 2022/01/14 11:43:30 Case 3.1 ===== 2022/01/14 11:43:30 目标楼层队列:[4 2] 2022/01/14 11:43:30 电梯上行,当前楼层:3 2022/01/14 11:43:31 电梯已到达目的地,当前楼层:4 2022/01/14 11:43:31 目标楼层队列:[2] 2022/01/14 11:43:31 电梯下行,当前楼层:4 2022/01/14 11:43:32 电梯下行,当前楼层:3 2022/01/14 11:43:33 电梯已到达目的地,当前楼层:2 2022/01/14 11:43:33 电梯停止 2022/01/14 11:43:33 Case 3.2 ===== 2022/01/14 11:43:33 目标楼层队列:[4 5 2] 2022/01/14 11:43:33 电梯上行,当前楼层:3 2022/01/14 11:43:34 电梯已到达目的地,当前楼层:4 2022/01/14 11:43:34 目标楼层队列:[5 2] 2022/01/14 11:43:34 电梯上行,当前楼层:4 2022/01/14 11:43:35 电梯已到达目的地,当前楼层:5 2022/01/14 11:43:35 目标楼层队列:[2] 2022/01/14 11:43:35 电梯下行,当前楼层:5 2022/01/14 11:43:36 电梯下行,当前楼层:4 2022/01/14 11:43:37 电梯下行,当前楼层:3 2022/01/14 11:43:38 电梯已到达目的地,当前楼层:2 2022/01/14 11:43:38 电梯停止 ``` ## Case 4 运行示例 新增实现需求: - 如果中途有其他楼层也按了,到对应楼层时暂停,开门、关门,重新继续按原来方向行进 ```text 2022/01/14 17:32:50 目标楼层队列:[2 5 11 8] 2022/01/14 17:32:50 开始前往 2 层 2022/01/14 17:32:50 电梯上行,当前楼层:1 2022/01/14 17:32:51 电梯已到达目的地,当前楼层:2 2022/01/14 17:32:51 电梯开门,当前楼层:2 2022/01/14 17:32:51 等待 3 秒 2022/01/14 17:32:54 电梯关门,当前楼层:2 2022/01/14 17:32:54 目标楼层队列:[5 11 8] 2022/01/14 17:32:54 开始前往 5 层 2022/01/14 17:32:54 电梯上行,当前楼层:2 2022/01/14 17:32:55 电梯上行,当前楼层:3 2022/01/14 17:32:56 电梯上行,当前楼层:4 2022/01/14 17:32:57 电梯已到达目的地,当前楼层:5 2022/01/14 17:32:57 电梯开门,当前楼层:5 2022/01/14 17:32:57 等待 3 秒 2022/01/14 17:33:00 电梯关门,当前楼层:5 2022/01/14 17:33:00 目标楼层队列:[11 8] 2022/01/14 17:33:00 开始前往 11 层 2022/01/14 17:33:00 电梯上行,当前楼层:5 2022/01/14 17:33:01 电梯上行,当前楼层:6 2022/01/14 17:33:02 电梯上行,当前楼层:7 2022/01/14 17:33:03 检测到8层有人按电梯,命令电梯暂停,并开门接乘客 2022/01/14 17:33:03 移除楼层队列中剩余的 8 层 2022/01/14 17:33:03 电梯开门,当前楼层:8 2022/01/14 17:33:03 等待 3 秒 2022/01/14 17:33:06 电梯关门,当前楼层:8 2022/01/14 17:33:06 电梯上行,当前楼层:8 2022/01/14 17:33:07 电梯上行,当前楼层:9 2022/01/14 17:33:08 电梯上行,当前楼层:10 2022/01/14 17:33:09 电梯已到达目的地,当前楼层:11 2022/01/14 17:33:09 电梯开门,当前楼层:11 2022/01/14 17:33:09 等待 3 秒 2022/01/14 17:33:12 电梯关门,当前楼层:11 2022/01/14 17:33:12 电梯停止 ```