const int INIT_MONEY = 1000; // 起始资金
const int HIRE_MONEY = 300; // 招募一个人需要的资金
const int DEAD_TIME = 3; // 超过 DEAD_TIME 时间单位后,被视为拒单
const int FINE_FIRST_TIME = 30; // 超时时间,第一次超时罚款
const int FINE_MONEY = 50; // 第一次超时罚款金额
const int FINE_SECOND_TIME = 60; // 超时时间,第二次超时倒闭
const int MONEY_GAIN_ONE = 10; // 完成一单获得的钱
const int MAP_X = 17; // 地图 X 大小
const int MAP_Y = 17; // 地图 Y 大小
const int COMPANY_X = 7; // 公司所在 X 大小
const int COMPANY_Y = 8; // 公司所在 Y 大小
const int HWID = 50; // 地图房屋的边长
const int RWID = 25; // 地图道路的边长
2.2 全局变量定义
/*
为区分全局常量,全局变量命名如下所示
*/
int CompanyMoney = INIT_MONEY; // 当前公司有多少钱
int CompanyRiderCount = 0; // 公司骑手数量
int Time = -1; // 当前时间,即 Time 个时间单位
int CompanyOrderSum = 0; // 公司接单数
int CompanyOrderFinish = 0; // 公司完成单数
int CompanyOrderOverTime = 0; // 公司超时单数
int OutputFlag = 0; // 区分动画或命令行输出
int IsEnd = 0; // 是否结束动画输入 0:初始值 1:鼠标点击退出
2:正常结束程序 3:破产 4:吊销执照
OrderList *AllOrderLog; // 全部订单记录(含有头结点)
OrderList *Buffer; // 缓冲区(含有头结点)
RiderList *AllRiderLog; // 全部骑手记录(含有头结点)
int Map[17][17]; // 输出用,0 为道路,1 为普通房屋,2 为餐厅,3 为宿舍,
4 为骑手
2.3 数据结构定义
/*
全局结构体
注意:本项目所有链表都具有空头结点!!!
*/
typedef struct _Order // 订单
{