Arbiter 系统使用说明
Overview
- Arbiter是NOI系列赛事的官方评测软件, 由北航的相关人员开发.
- 在OIer会经历的几场大型比赛中, 除了省选和PKUSC/THUSC不使用Arbiter评测, 其余比赛(如CTSC, WC, NOI, NOIP)所有使用Arbiter进行官方评测, 最终成绩也以Arbiter评测结果为准.
- 网络上一直没有清晰的Arbiter使用说明....因此提供一份.
Install
- Arbiter内置在了NOI Linux发行版中, 能够自行前往NOI官网下载.
- 其余下载方式尚不明确.
Usage
- 首先新建一场比赛, 选择一个已经建立的文件夹做为比赛文件夹, Arbiter会自行在该目录下建立几个子文件夹.
- 几个子文件夹的功能以下:
evaldata
: 数据文件夹, 全部题目的数据直接放在这一个文件夹中, 不建单独的子文件夹, 每一个文件的格式形如:test1.in
, test1.ans
, 注意这里的答案文件必须用.ans做为后缀.
- 若是你的题目的原始数据是以
.out
做为后缀名, 你可使用附件一中的Python脚本批量修改.
players
: 选手源代码文件夹, 首先创建一个日期文件夹, 如day1
(注: 若已经在arbiter中新建了一天的比赛, 那么这个文件夹会被自动建立), 而后把各个选手的源程序分别创建单独的文件夹放进day1
文件夹.
- 在每一个选手的文件夹中, 选手须要对于每一个题目建立子文件夹, 并把源程序放到子文件夹中.
result
: 评测结果文件夹, 每一个以选手名称做为名称的文件夹是评测结果文件, 不须要操做人员手动修改.
ps
: 评测结果文件夹, 以.ps
文件可视化呈现的选手测试点详细测试状况, 不须要操做人员手动修改, 在"打印比赛结果"按钮被操做后会自动建立.
- 在配置完毕数据和选手源程序以后, 在考试页面创建一天的考试, 在下面再分别创建试题, 每一个试题按照要求设置便可.
- 在选手界面, 选择"导入名单", 导入csv文件的选手名单, 或者直接手动创建选手. 选手的信息分为选手名称和选手编号, 其中选手编号必须和
players
中的文件夹名称相同.
- 选择考试, 点击测评便可. 注意这个软件设计的很是辣鸡, 测评的时候不要乱动鼠标, 否则会当机.
FAQ
- 若是有人有疑问能够在评论区提出, 会在这里统一解答.
Appendix
#coding:utf-8
import os
def filerename(filepath,srctype,destype):
for path,dirlist,filelist in os.walk(filepath):
for file in filelist:
#防止文件名中包含.
fullist = file.split('.')
namelist = fullist[0:-1]
filename = ''
for i in namelist:
filename = filename + i + '.'
# print (filename)
curndir = os.getcwd() #获取当前路径
# print (curndir)
os.chdir(path) #设置当前路径为目标目录
newdir = os.getcwd() #验证当前目录
# print (newdir)
filetype = file.split('.')[-1] #获取目标文件格式
if filetype == srctype: #修改目标目录下指定后缀的文件(包含子目录)
os.rename(file,filename+destype)
if srctype == '*': #修改目标目录下全部文件后缀(包含子目录)
os.rename(file,filename+destype)
if srctype == 'null': #修改目标目录下全部无后缀文件(包含子目录)
if len(fullist) == 1:
os.rename(file,file+'.'+destype)
os.chdir(curndir) #回到以前的路径
filerename('.','out','ans')
"执行python change.py便可