由于ACM集训队训练的需要(因为ICPC用的就这个),我为了搭建这玩意儿已经花了不少时间了
(虽然前辈已经把具体步骤写在wiki上了),
在此期间还是遇到了不少问题,这些都是用教训总结出来的。
基本系统:
1.ubuntu12.04,ubuntu14.04上均有搭过;
2.注意在安装必要软件的时候要装全了,删除无用软件的时候看仔细了(我就不小心把software-center给删了);
3.选来当做服务端和judge端的电脑注意设置成防止锁屏(这是细节);
配置服务端:
1.注意一定要把/home/acm/pc2-9.2.3目录下的pc2v9.ini拷一份到/home/acm/pc2-9.2.3/bin
(这是最基础的一步);
2.修改/home/acm/pc2-9.2.3/bin/pc2v9.ini
的site1的ip地址时只要修改localhost为服务端的ip地址就行了,
注意不要把"server=localhost:51002"中的server也删了,否则客户端就会出现无法连接到服务器的现象
(今天倒腾了半天就是这个原因);
3."添加题目:点击Problems,点击Add,填写题目名称,时间(单位:秒),
勾选Problem Requires Input Data,Stdin,
选择输入文件,勾选Judges Have Provided an Answer File,选择输出文件。
点击Judge Type,选择Computer Judging自动判题。
点击Validator,选择Use PC^2 Validator,在下拉框中选择1-diff,确定."
这是一步完成的(一个窗口),注意勾选Stdin否则就会出现一段正却的代码交上去judge端一直Executing....
一直跑时间直到超过时限然后给客户端返回TLE的结果。
(暂时没搞懂为什么,等我仔细研究一下英文版的说明书);
4.一定要确保每一道题都有judge端来评判并且要确保所有的judge端都处于开启状态,否则提交代码的时候就不会返回任何结果,
rank上也不会显示(急死你);
5.执行登陆pc2board的时的默认账号时scoreboard而不是board或者pc2board(幸好我机智知道看看server端,很快就发现了);
6.“终端执行pc2board
,在pc2-9.2.3/bin/
下会生成html
文件夹,cd html
, python -m SimpleHTTPServer
,
在浏览器输入服务器ip:8000
,就可以查看比赛状态了。”
注意python -m SimpleHTTPServer
这个服务一定要在后台保持开启,不然你看个毛啊!
配置客户端:
1.同样需要修改/home/acm/pc2-9.2.3/bin/pc2v9.ini
的site1的IP地址(保持和server端的ip一致不解释);
2.在桌面新建PC^2.c文件,写入以下内容 #include<stdlib.h> int main()
{ system("cd/home/acm/pc2-9.2.3/bin
&&/home/acm/pc2-9.2.3/bin/pc2team"); }
(不同的电脑和pc2-9.2.3
文件为路径不同注意灵活修改运用)