给oj添加虚拟评测功能

前天写的刷题机器人就是做vjudge的副产品,只是把副产品提前做了罢了。
不知道是谁说的一句话,“游戏是推动计算机科学发展的一大动力”,这话还真有一定的道理。军用及高新技术产业推动专业计算机科学发展的话,游戏和娱乐就是推动民用计算机往前走的最大动力了。

这篇文章作为代码笔记,以后oj出问题了可以看这贴回忆一下当初是怎么想的怎么写的。

先拿HDU开刀:

  1. 爬页面把题目获取到是必要的做各种处理之后是数据适用于自己的OJ,我建了一张新表hdu_problem用来储存hdu的题目。抓到题目数据并储存后稍加修改"problem.php",'problemset.php'就可以把题目展示出来了。
  2. 虚拟评测功能还是采用web端写入solution表,评测端读取这张表并评测的方式。
    分析solution表的每个字段,发现 状态 页面以及Oj自带的judge core判断题目没有评测过的方法是判断solution这张表中result字段的值,如果值为 0 则表示没有评测过。那么vjudge提交时把这个result值设置为原来OJ不认识的值就可以了。
    现在规定各oj使用的状态码:
    hdu:100-200

Tag: none

Leave a new comment