更新README v1.2.1

This commit is contained in:
13632530821
2022-11-20 17:59:08 +08:00
parent e934ad703a
commit 6ef3e8ddfc

169
README.md
View File

@@ -1,46 +1,153 @@
# ---一个点名器的python实现--- # 一个点名器的Python实现
## 读取data下的names.xls数据库文件
## names.xls必须满足以下条件:
### 1. 至少两行和不多于也不少于四列
### 2. 第一行的四个单元格分别是 |序号|班级|学科|姓名
### 3. 第二行以下分别按照第一行的要求填写
#### P.S. 第一行的四个单元格会被程序自动忽略,这四个名称只是为了让人方便阅读 > 当前README以 `点名器 v1.2.1` 为最新版,会与最新版本持续更新。
### 软件会自动读取数据库中所有可用的班级名称,并将列举在软件右侧的选择框内. ## 基本结构
![image](https://user-images.githubusercontent.com/10991308/200275407-fc43e648-275f-455e-a7c7-2fec00e074e2.png) 当运行来自最新版安装包时,安装包将把内容解压至目标目录,目录结构如下:
### 左击选择框可以选择按照班级的筛选,可以多选,如果不选,则默认不进行筛选. ```
解压目录.
| 点名器.exe
|
+---assets
| proc.wav
| sel.wav
| 点名器.ico
|
\---data
config.data
names.xls
```
![image](https://user-images.githubusercontent.com/10991308/200275805-0d64667f-238e-42bb-a332-3be33fd0b5ec.png) ## 文件功能
* 点名器.exe
- 点名器主程序
- 若要使用点名器,请双击此文件以启动点名器
* assets文件夹
- 存放软件静态资源文件
- 删除其中文件乃至删除整个assets文件夹**均不会**导致软件彻底无法使用,部分功能可能失效,但主要点名功能不受影响
- proc.wav
+ 选择中音效
+ 该音效当前未实装
+ 欲更改选择中音效,请将目标音效转化为`*.wav`格式,并重命名为`proc.wav`,将老音效文件覆盖。
+ 对本文件的删除、重命名、更改格式等操作将会导致程序在启动时提示`资源文件错误`,继续进入软件会导致不会出现任何音效(包括选择中音效和选中音效)
- sel.wav
+ 选中音效
+ 欲更改选中音效,请将目标音效转化为`*.wav`格式,并重命名为`sel.wav`,将老音效文件覆盖。
+ 对本文件的删除、重命名、更改格式等操作将会导致程序在启动时提示`资源文件错误`,继续进入软件会导致不会出现任何音效(包括选择中音效和选中音效)
- 点名器.ico
+ 软件图标
+ 虽然应用程序图标软件左上角图标与Windows底部的任务栏图标一致但是该点名器.ico仅影响软件左上角图标。
+ 欲更改软件左上角图标,请将目标图标转化为`*.ico`格式,并重命名为`点名器.ico`,将老图标文件覆盖
+ 本文件的删除、重命名、更改格式等操作将会导致程序在启动时提示`资源文件错误`,继续进入软件会在应用左上角加载默认图标
* data文件夹
- 存放软件使用所需的数据库文件
- 删除其中的`names.xls`文件,会导致软件**报错并退出**
- names.xls
+ 该文件存放点名所使用的所有数据
+ 该文件的格式为`*.xls`如果使用的是Excel 2007及以后版本生成数据库请注意此时Excel的默认保存格式为`*.xlsx`,该文件**无法被软件识别**
+ 表格文件的格式如下:
|序号|班级|学科|姓名|
|:---:|:---:|:---:|:---:|
|......|......|......|......|
|......|......|......|......|
+ 请保证除了首行以外,至少有一行的有效数据,否则软件将**报错并退出**
- config.data
+ 该文件是**可选**的,删除该文件不会对软件产生任何`表面上的`影响
+ 该文件操控本软件的一个隐藏功能:概率隐藏修改
+ 提供三大功能:移除,概率减少,概率增加:
- 移除功能
+ 移除功能将将指定序号的数据列为禁止录入的列表中,即该序号所代表的人即使存在于数据库中,仍然不会录入至软件的数据库中,也不会被选中。
- 概率减少功能
+ 被列为概率减少的序号,将会触发以下机制:
+ 每次随机选取,均会有`(8 * 被列为概率减少的序号人数)%`的概率不抽取他们
+ 这个概率的上限是40%当人数大于5人时所有人共享40%的概率
- 概率增加功能
+ 被列为概率增加的序号,将会触发以下机制:
+ 每次随机抽取,均会有`(5 * 被列为概率增加的序号人数)%`的概率抽取他们
+ 这个概率的上限是30%当人数大于6人时所有人共享30%的概率
+ 由于以上机制被随机抽到的情况,将不受适用于一般人的`防反复抽取机制`的影响,即有可能出现连续两次都是标记为概率增加的序号的情况
+ 通过编辑`config.data`文件来执行修改概率功能
- `config.data`文件由`N`行组成,`N`为需要修改概率的总人数
- 每一行由`X,P`组成,`X`为需要修改概率的序号,`P``+`/`-`/`0`中的任意一个
+ 当`P``+`该行对应的X序号将被列入概率增加的列表中
+ 当`P``-`该行对应的X序号将被列入概率减少的列表中
+ 当`P``0`该行对应的X序号将被列入移除列表中
- 请注意,全程请务必使用**英文符号**,并严格按照语法编写
- 如果出现语法不合法的情况,预期的软件反应是拒绝接受`config.data`文件但由于概率修改是隐藏功能如果出现任何bug没有任何日志可以记录也不保证软件一定按期望进行操作请在编辑该文件的时候谨慎操作
### 点击`立即摇人!`可以在所有满足筛选条件的人员中随机挑选一位,并将其姓名,班级号和学科种类显示在界面上. ## 软件使用方法
欲使用本点名器软件来进行随机点名,请双击安装目录下的`点名器.exe`文件
![image](https://user-images.githubusercontent.com/10991308/200276213-2eabcb19-7bde-4eca-985e-e0ddf939b484.png) 如果正常启动,软件应打开此页面
### 点击`应用班级选用`可以提前应用筛选条件,但不会进行挑选. ![image](https://user-images.githubusercontent.com/10991308/202894370-7361a0f3-e0a0-470a-b721-34b107b9b82c.png)
~~但是点击摇人的时候本来就会重新应用当前选好的筛选条件,所以这个按钮其实就是做来好看的.~~ 如果未能正常启动,请参阅文档最后的`可能出现的错误和解决方法`章节
### 为了防止被搞心态,不会出现连续抽到两个一样的人的情况.~~因为懒得写动画所以如果连续抽到两个一样的人就几乎看不出来了~~ 正常启动后,右侧为班级选择器,这个班级是由数据库中的数据自动生成的
## 隐藏功能:使用config.data文件对指定编号的人员进行指定概率编辑 点击对应班级,可以选择仅抽取指定班级的人,这个选择可以多选
~~究竟是什么居心的人才想让我开发这么一个鬼功能~~ ![image](https://user-images.githubusercontent.com/10991308/202894483-ca6a3495-2490-4979-97f5-aa62981524e4.png)
![image](https://user-images.githubusercontent.com/10991308/200277374-0ff24e74-53d6-4d22-b513-bccc9f1af241.png) 如果不进行选择,则默认在所有班级中挑选
![image](https://user-images.githubusercontent.com/10991308/200277421-a81b11a2-eec2-4373-957a-37dc134ef0b8.png) 点击`立即摇人!`,即可按照当前选择的班级中随机挑选一名,并显示在软件主页面上并播放一段音效
### 在data目录下编辑一个config.data文件 ![image](https://user-images.githubusercontent.com/10991308/202894615-fefca4e1-c07c-4333-b5c2-9fea4d3ad86d.png)
### 如果程序没有检测到文件,什么都不会发生
### config.data需要符合以下语法: 会默认播放游戏《只狼·影逝二度》中,对方使出不可振刀攻击时的「危」的音效
#### 1. 由N行组成
#### 2. 每一行对应一位需要更改概率的序号 点击`应用班级选用`,即可应用当前选中的班级筛选,并进行弹窗提示
#### 3. 每一行的内容为 `X,+/-/0` 即需要编辑的序号加上一个英文字符逗号加上英文字符+或者-或者数字0
#### 4. 请再看一遍`3.`并确保你记住了每一个词 ![image](https://user-images.githubusercontent.com/10991308/202894663-fac37bf2-af06-4238-8f6d-64053abc1ead.png)
#### 5. 如果输入了`+`,那么该序号被抽到的概率增加(前提是满足由班级选择器控制的筛选条件),且针对这些人的防搞心态保护失效.具体增加方法为每次抽人都有5% * (被标记为'+'的人的人数)的概率只在被标记为'+'的人中抽取,这个总概率的上限为30%.
#### 6. 如果输入了`-`,那么该序号被抽到的概率减少.具体减少方法是每次抽人都有8% * (被标记为'-'的人的人数)直接排除掉这些被标记的人.这个概率的上限是40%. 如果没有选择任何班级,软件会选中所有班级,并提示用户
#### 7. 如果输入了`0`,那么该序号便会被拒绝录入.即数据库中虽然存在该编号,但是程序不会将其视为可被抽取的对象.
#### 8. 如欲更改配置,仅需在保存了更改后的配置文件后重启点名器程序即可. ![image](https://user-images.githubusercontent.com/10991308/202894703-ad8e48a3-fffa-4092-b2e2-e0e0b1e4cab1.png)
按下这个按钮同时会导致本次启动的软件,被标记为概率增加的人和概率减少的人的概率更改失效,这个失效对被标记为移除的人无效。重启本软件即可恢复概率调整功能
## 可能出现的错误和解决方法
* 提示类
- 资源文件错误
![image](https://user-images.githubusercontent.com/10991308/202894928-2e21a724-d3a4-4752-88d6-778699f4c346.png)
> 如图当软件未能检测到assets文件夹中的某些内容时会弹出的提示
+ 当软件未能检测到assets文件夹中的内容时会提醒用户资源文件错误
+ 点击`确定`可继续使用软件,点击`取消`会关闭软件
+ 如果继续使用软件,某些软件功能,包括但不限于`图标显示/音效文件播放`可能无法使用
+ 可能的解决方法
- 检查assets文件夹是否存在如果不存在请重新安装本软件
- 检查assets文件夹是否拼写正确是否与`点名器.exe`在相同的路径,如果不正确,请人工恢复
- 检查assets文件夹内内容是否拼写正确格式正确如果不正确请人工恢复
- 找不到数据库文件
![image](https://user-images.githubusercontent.com/10991308/202895011-713ecb16-3454-4a66-9c50-efc8d7096d09.png)
>如图,当软件未能找到数据库文件时,会弹出的错误信息
+ 当软件未能检测到`names.xls`数据库文件时,会弹出错误信息,此时软件将**无法运行**
+ 可能的解决方法
- 检查`names.xls`文件是否存在,是否拼写正确,格式正确,如果不正确,请人工恢复
- 检查`names.xls`文件是否在正确的路径下(点名器根目录/data/names.xls),如果不正确,请人工恢复
- 数据库文件格式不正确
![image](https://user-images.githubusercontent.com/10991308/202895422-952db790-d964-4f38-92b1-d4e42f361108.png)
>如图,当软件识别到数据库文件格式不正确时,会弹出的错误信息
+ 当软件识别的`names.xls`数据库文件格式不正确时,会弹出的错误信息,此时软件将**无法运行**
+ 数据库文件要求至少两行(包括首行)与正好四列的数据,如果不符合则会弹出此错误信息
+ 可能的解决方法
- 检查`names.xls`文件是否有多余的数据干扰软件,如果存在,请人工排除(可以查看错误信息中的软件访问的行列数据辅助排查)
- 其他错误/可能的解决方案无效
+ 请在[gitee仓库](https://gitee.com/hchazzy/random_picker)中检查是否有新版本,如果有,请删除本软件,并重新安装最新版本
+ 如果仍未解决问题,请联系作者<peter13632530821@163.com>
> The actual science of logic is conversant at present only with things either certain, impossible, or entirely doubtful, none of which (fortunately) we have to reason on. Therefore the true logic for this world is the calculus of probabilities, which takes account of the magnitude of the probability which is, or ought to be, in a reasonable mans mind.
> <p align="right">----James Clerk Maxwell (1850)</p>