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便可