Skip to content
xxr5566833 edited this page Dec 11, 2017 · 1 revision

Tender

招标会,控制竞标任务的产生和结算

properties:

Object(Company)[][] companyList_

可能参与竞标任务的公司列表,直接从json中导入,是一个二维数组,同一级别的公司在同一纬度

Object [][]bidProjects_

可能的竞标任务数组,直接从json导入,同一类型的在同一个一维数组里

TenderGroup[] groups_

一共要开的招标会

Number[] periods_

每种类型的周期,一共有五种类型

Number[] initDays_

每种类型的招标会开始计时于多少天

functions:

void initTender(Number categoryid)

根据种类编码,初始化一个招标任务

根据categoryidlevel,在this.bidProjects_随机选择一个招标任务,并根据这个招标任务的信息初始化一个project

根据level,在this.companyList_里选择合适的公司,把它们或者它们的编码加到resultCompany

根据project和resultCompany,初始化一个TenderGroup,调用init,并加入到自己的属性数组中

void tender()

间隔时间太长了,所以无法使用schedule,那么只能在update里判断了

遍历每种类型的initDay,再根据现在的时间,计算出过了多少天,如果发现它大于等于了对应的period,那么此时根据这个类型编码,再随机产生一个等级,调用initTender,然后再根据这个类型的最大周期最小周期随机产生一个时间重新写到period数组里,并让initday置为当前天数,

小于那就什么都不做

并且遍历每一个tendergroup,如果有可以竞标的,那么就开始竞标,然后把这个tendergroup从数组里去掉

Clone this wiki locally