我参加了一些在线编程竞赛,发现在线评委在功能上使用得非常出色.
谈到这个话题,我的大学也即将举办在线编程竞赛,我负责这个活动.我正在评估我实施在线评判的选择.当然,我可以利用一些已经可用的评委,比如SPOJ的评委,但令我感到震惊的是,我和我的一些朋友也可以尝试构建一个.如果我们失败了,我们总能依靠这些.
那么,有谁可以给我一些概述或资源,我该如何得到它?如果我对评委如何实现"沙盒"有所了解,也会有所帮助.我们手拿了大约几个月.
更新这是我在SO 2上提出几个问题之后的两周内我的努力的结果http://github.com/anomit/loki
我真的不确定你的问题是关于什么的。从头开始为法官编写设计规范并不难。
您使用给定的输入数据运行一个事物,并将输出数据提供给问题作者编写的测试程序(因为并不总是唯一的答案)。人们通过在干净的机器上远程运行沙箱来进行沙箱处理。
添加:请不要进行代码分析。您有两种选择,要么在比赛期间向参赛者提供此代码分析,要么不提供。
如果您这样做:他们会花最后 5 分钟的时间来确保没有任何问题。在此过程中代码变得更加糟糕。
如果你不这样做:你就违反了“法治”:人们知道给出分数的机制(另外,这就是为什么你总是在问题文本中给他们第一个测试)。
更新:抱歉,我一开始没有注意到你问了一些具体问题。沙箱可能没有你想象的那么重要——在良好的竞争中,代码会公开,所以“黑客”会非常尴尬。然而,我想我看到了一种实践,你不能直接与系统进行 i/o、文件系统或任何其他交互(它们main()为你编写,而且总是一样的;你只用给定的输入/输出编写算法部分流)。你的法官应该只运行它本身从源代码编译的内容。
| 归档时间: |
|
| 查看次数: |
8732 次 |
| 最近记录: |