实现方法
- 代码构成:主函数,加上类电梯,加上结构体乘客,加上lua脚本3个。
- 基本思路:
- 运行前:
- 输入数据。
- 启动lua虚拟机。
- 运行时:
- 检查请求:检查有没有新的请求,有则放入总请求向量中。
- 同步:将新的请求同步到每个电梯的请求向量中,并判断是否可以前往该请求楼层,标记不能前往的乘客。
- 判断进出:判断乘客是否可以、愿意进出电梯,并标记这些乘客。
- 同步:将乘客状态与其他电梯同步。
- 输出:输出电梯停靠楼层。
- 调用:调用脚本函数对下一步移动方向进行处理。
- 移动:电梯移动。
- 完成判定:判断是否完成。
- 运行后:
- 关闭lua虚拟机。
- 将输出分文件。
- 运行前:
- 难点:在完成作业的时候遇到了以下难点。
- c++调用lua函数。
- 将输出分文件。
- 乘客请求的收集。
- bug:
auto
用于for
循环里只是便利,容器的一个镜像,不会改变容器的值。- lua语法一直错误。
- 结束运行条件出现错误。
c的实现
- 我觉得把我的电梯类改成结构体,自己写一个向量,然后改一下输出就是c的实现了。