[篮版竞猜] QuizHelper竞猜助手上线
大家好!
为了让竞猜更加简便,秉着“前人栽树后人乘凉”的想法,我写了个Python小程序QuizHelper,来帮助(现在及未来的)版务组节约清算的时间。现将代码附上,未来的版务有工夫可以完善一下。
使用方法:
一、本程序使用了pandas和numpy包,若没安装过这两个包或者conda的话,需安装一下(命令行输入python -m pip install numpy pandas)。
二、本程序可直接运行(python QuizHelper.py),运行过程中需要回答若干问题,问题如下:
1. 是否为第一轮比赛。默认为否,不是第一轮比赛直接回车即可,第一轮时需输入yes/y/Yes...。
2. 本轮竞猜正确答案。默认为大于等于5道的是非题,也是本赛季竞猜的形式。输入为一个由字符“T”和“F”组成的字符串,如“TFTFT”。程序判断输入有误的条件是:输入的字符串长度小于5,或输入有不是“T”或“F”的字符。
3. 输入本轮比赛答案的文件位置。如果文件放在和QuizHelper.py同一个目录下,直接输入文件名即可。文件的格式为:每一行由ID+答案组成,两部分用逗号隔开。如:
huayuankou,TTFFT
flybut,TTTTT
Jasper,TFFFF
4. 若本轮不是第一轮,则需输入上一轮的默认输出文件。
5. 输入计算结果的文件名(以.txt结尾,如R1.txt)。程序会输出两个文件,一个是普通的、用来保存计算结果的文件R1.txt,另一个是供版务复制粘贴的文件R1_for_post.txt。版务可直接复制后者至BBS即可自动生成排好版的帖子。如(网页版请点击右上角的ASCIIArt查看,得分与上面的答案示例无关):
Rank| ID| Attendance| Score| Average| Trend
1| Javier| 1| 4| 4.0| --
2| huayuankou| 1| 3| 3.0| --
2| flybut| 1| 3| 3.0| --
三、本人仅在MacOS系统下调试过此程序。Windows系统下可能会出现问题(如换行符),本人对计算机了解甚少,还望有能力者赐教。
感谢wmsyq帮助本人测试了此程序的运行情况,mintcandy、doctor、Casper在rank问题上提供了解决思路与方法(排名不分先后),flybut、Jasper、Javier的ID(只是ID,他们并没有转借我他们的账号)。由于本人编程水平不高,程序可能写得不整洁,还望海涵!
20191108
更新了积分算法:输出分数改为总分,而不是对了几道题。
20191212
1. 修复了“未参加本轮竞猜的id出场数(Attendance)加1”的bug。
2. 增加了本轮得分(RoundScore)。
------
[附] 测试流程:
将QuizHelper.py、test1.txt、test2.txt放至同一目录下,在命令行输入python QuizHelper.py即可打开。
测试第一次执行时第一轮选择“是”,输入由T和F组成的长度为5的任意字符串,测试轮第一轮竞猜答案文件为test1.txt(回答二、3.的问题),输出可任意以.txt结尾的文件作为输出文件名,推荐为R1.txt,方便查找。
测试第二册执行时第一轮选择“否”,输入由T和F组成的长度为5的任意字符串。测试轮第二轮竞猜答案文件为test2.txt,上一轮的结果文件为R1.txt,输出文件名填写R2.txt。