mirror of
https://github.com/HChaZZY/Random-Picker.git
synced 2025-12-06 10:33:50 +08:00
更改为英文字符
This commit is contained in:
12
.gitignore
vendored
12
.gitignore
vendored
@@ -18,3 +18,15 @@ build/点名器/localpycs/pyimod03_ctypes.pyc
|
||||
build/点名器/localpycs/pyimod04_pywin32.pyc
|
||||
build/点名器/localpycs/struct.pyc
|
||||
dist/点名器.exe
|
||||
README_Vanila.html
|
||||
README_Vanila.md
|
||||
README.html
|
||||
.history/README_Vanila_20221107204953.md
|
||||
.history/README_Vanila_20221107204954.md
|
||||
.history/.gitignore_20221107235331
|
||||
.history/点名器_20221107235625.pyw
|
||||
.history/README_20221107235533.md
|
||||
.history/.gitignore_20221107235715
|
||||
.history/点名器_20221108000106.pyw
|
||||
.history/.gitignore_20221119173544
|
||||
dist/names.xls
|
||||
|
||||
31
.history/.gitignore_20221119173550
Normal file
31
.history/.gitignore_20221119173550
Normal file
@@ -0,0 +1,31 @@
|
||||
点名器.spec
|
||||
build/点名器/点名器.exe.manifest
|
||||
build/点名器/点名器.pkg
|
||||
build/点名器/Analysis-00.toc
|
||||
build/点名器/base_library.zip
|
||||
build/点名器/EXE-00.toc
|
||||
build/点名器/PKG-00.toc
|
||||
build/点名器/PYZ-00.pyz
|
||||
build/点名器/PYZ-00.toc
|
||||
build/点名器/Tree-00.toc
|
||||
build/点名器/Tree-01.toc
|
||||
build/点名器/Tree-02.toc
|
||||
build/点名器/warn-点名器.txt
|
||||
build/点名器/xref-点名器.html
|
||||
build/点名器/localpycs/pyimod01_archive.pyc
|
||||
build/点名器/localpycs/pyimod02_importers.pyc
|
||||
build/点名器/localpycs/pyimod03_ctypes.pyc
|
||||
build/点名器/localpycs/pyimod04_pywin32.pyc
|
||||
build/点名器/localpycs/struct.pyc
|
||||
dist/点名器.exe
|
||||
README_Vanila.html
|
||||
README_Vanila.md
|
||||
README.html
|
||||
.history/README_Vanila_20221107204953.md
|
||||
.history/README_Vanila_20221107204954.md
|
||||
.history/.gitignore_20221107235331
|
||||
.history/点名器_20221107235625.pyw
|
||||
.history/README_20221107235533.md
|
||||
.history/.gitignore_20221107235715
|
||||
.history/点名器_20221108000106.pyw
|
||||
.history/.gitignore_20221119173544
|
||||
32
.history/.gitignore_20221119173607
Normal file
32
.history/.gitignore_20221119173607
Normal file
@@ -0,0 +1,32 @@
|
||||
点名器.spec
|
||||
build/点名器/点名器.exe.manifest
|
||||
build/点名器/点名器.pkg
|
||||
build/点名器/Analysis-00.toc
|
||||
build/点名器/base_library.zip
|
||||
build/点名器/EXE-00.toc
|
||||
build/点名器/PKG-00.toc
|
||||
build/点名器/PYZ-00.pyz
|
||||
build/点名器/PYZ-00.toc
|
||||
build/点名器/Tree-00.toc
|
||||
build/点名器/Tree-01.toc
|
||||
build/点名器/Tree-02.toc
|
||||
build/点名器/warn-点名器.txt
|
||||
build/点名器/xref-点名器.html
|
||||
build/点名器/localpycs/pyimod01_archive.pyc
|
||||
build/点名器/localpycs/pyimod02_importers.pyc
|
||||
build/点名器/localpycs/pyimod03_ctypes.pyc
|
||||
build/点名器/localpycs/pyimod04_pywin32.pyc
|
||||
build/点名器/localpycs/struct.pyc
|
||||
dist/点名器.exe
|
||||
README_Vanila.html
|
||||
README_Vanila.md
|
||||
README.html
|
||||
.history/README_Vanila_20221107204953.md
|
||||
.history/README_Vanila_20221107204954.md
|
||||
.history/.gitignore_20221107235331
|
||||
.history/点名器_20221107235625.pyw
|
||||
.history/README_20221107235533.md
|
||||
.history/.gitignore_20221107235715
|
||||
.history/点名器_20221108000106.pyw
|
||||
.history/.gitignore_20221119173544
|
||||
dist/names.xls
|
||||
32
README.md
32
README.md
@@ -1,32 +1,32 @@
|
||||
# ---一个点名器的python实现---
|
||||
## 读取相同目录下的names.xls数据库文件
|
||||
## 程序启动后如果检测到数据库文件会自动加上隐藏属性
|
||||
## names.xls必须满足以下条件:
|
||||
## names.xls必须满足以下条件:
|
||||
### 1. 至少两行和不多于也不少于四列
|
||||
### 2. 第一行的四个单元格分别是 |序号|班级|学科|姓名
|
||||
### 3. 第二行以下分别按照第一行的要求填写
|
||||
|
||||
#### P.S. 第一行的四个单元格会被程序自动忽略,这四个名称只是为了让人方便阅读
|
||||
#### P.S. 第一行的四个单元格会被程序自动忽略,这四个名称只是为了让人方便阅读
|
||||
|
||||
### 软件会自动读取数据库中所有可用的班级名称,并将列举在软件右侧的选择框内。
|
||||
### 软件会自动读取数据库中所有可用的班级名称,并将列举在软件右侧的选择框内.
|
||||
|
||||

|
||||
|
||||
### 左击选择框可以选择按照班级的筛选,可以多选,如果不选,则默认不进行筛选。
|
||||
### 左击选择框可以选择按照班级的筛选,可以多选,如果不选,则默认不进行筛选.
|
||||
|
||||

|
||||
|
||||
### 点击`立即摇人!`可以在所有满足筛选条件的人员中随机挑选一位,并将其姓名,班级号和学科种类显示在界面上。
|
||||
### 点击`立即摇人!`可以在所有满足筛选条件的人员中随机挑选一位,并将其姓名,班级号和学科种类显示在界面上.
|
||||
|
||||

|
||||
|
||||
### 点击`应用班级选用`可以提前应用筛选条件,但不会进行挑选。
|
||||
### 点击`应用班级选用`可以提前应用筛选条件,但不会进行挑选.
|
||||
|
||||
~~但是点击摇人的时候本来就会重新应用当前选好的筛选条件,所以这个按钮其实就是做来好看的。~~
|
||||
~~但是点击摇人的时候本来就会重新应用当前选好的筛选条件,所以这个按钮其实就是做来好看的.~~
|
||||
|
||||
### 为了防止被搞心态,不会出现连续抽到两个一样的人的情况。~~因为懒得写动画所以如果连续抽到两个一样的人就几乎看不出来了~~
|
||||
### 为了防止被搞心态,不会出现连续抽到两个一样的人的情况.~~因为懒得写动画所以如果连续抽到两个一样的人就几乎看不出来了~~
|
||||
|
||||
## 隐藏功能:使用config.data文件对指定编号的人员进行指定概率编辑
|
||||
## 隐藏功能:使用config.data文件对指定编号的人员进行指定概率编辑
|
||||
|
||||
~~究竟是什么居心的人才想让我开发这么一个鬼功能~~
|
||||
|
||||
@@ -35,14 +35,14 @@
|
||||

|
||||
|
||||
### 在相同目录下编辑一个config.data文件
|
||||
### 如果程序没有检测到文件,什么都不会发生
|
||||
### 如果检测到了,自动加隐藏属性并读取文件
|
||||
### config.data需要符合以下语法:
|
||||
### 如果程序没有检测到文件,什么都不会发生
|
||||
### 如果检测到了,自动加隐藏属性并读取文件
|
||||
### config.data需要符合以下语法:
|
||||
#### 1. 由N行组成
|
||||
#### 2. 每一行对应一位需要更改概率的序号
|
||||
#### 3. 每一行的内容为 `X,+/-/0` 即需要编辑的序号加上一个英文字符逗号加上英文字符+或者-或者数字0
|
||||
#### 4. 请再看一遍`3.`并确保你记住了每一个词
|
||||
#### 5. 如果输入了`+`,那么该序号被抽到的概率增加(前提是满足由班级选择器控制的筛选条件),且针对这些人的防搞心态保护失效。具体增加方法为每次抽人都有5% * (被标记为‘+’的人的人数)的概率只在被标记为‘+’的人中抽取,这个总概率的上限为30%。
|
||||
#### 6. 如果输入了`-`,那么该序号被抽到的概率减少。具体减少方法是每次抽人都有8% * (被标记为‘-’的人的人数)直接排除掉这些被标记的人。这个概率的上限是40%。
|
||||
#### 7. 如果输入了`0`,那么该序号便会被拒绝录入。即数据库中虽然存在该编号,但是程序不会将其视为可被抽取的对象。
|
||||
#### 8. 如欲更改配置,仅需在保存了更改后的配置文件后重启点名器程序即可。
|
||||
#### 5. 如果输入了`+`,那么该序号被抽到的概率增加(前提是满足由班级选择器控制的筛选条件),且针对这些人的防搞心态保护失效.具体增加方法为每次抽人都有5% * (被标记为'+'的人的人数)的概率只在被标记为'+'的人中抽取,这个总概率的上限为30%.
|
||||
#### 6. 如果输入了`-`,那么该序号被抽到的概率减少.具体减少方法是每次抽人都有8% * (被标记为'-'的人的人数)直接排除掉这些被标记的人.这个概率的上限是40%.
|
||||
#### 7. 如果输入了`0`,那么该序号便会被拒绝录入.即数据库中虽然存在该编号,但是程序不会将其视为可被抽取的对象.
|
||||
#### 8. 如欲更改配置,仅需在保存了更改后的配置文件后重启点名器程序即可.
|
||||
|
||||
14
点名器.pyw
14
点名器.pyw
@@ -39,7 +39,7 @@ try:
|
||||
table = excel_data.sheets()[0]
|
||||
win32api.SetFileAttributes(filename,win32con.FILE_ATTRIBUTE_HIDDEN)
|
||||
except FileNotFoundError:
|
||||
msgbox.showerror('找不到数据库文件', '在相同目录下未能找到 names.xls 文件,请确认您的文件存在')
|
||||
msgbox.showerror('找不到数据库文件', '在相同目录下未能找到 names.xls 文件,请确认您的文件存在')
|
||||
sys.exit()
|
||||
|
||||
try:
|
||||
@@ -48,7 +48,7 @@ try:
|
||||
assert cols == 4
|
||||
assert rows > 1
|
||||
except AssertionError:
|
||||
msgbox.showerror('数据库文件格式不正确', '数据库文件内行/列数不合法,请确认数据库文件拥有超过1的行数和等于4的列数,当前行数:' + str(rows) + ' 当前列数:' + str(cols))
|
||||
msgbox.showerror('数据库文件格式不正确', '数据库文件内行/列数不合法,请确认数据库文件拥有超过1的行数和等于4的列数,当前行数:' + str(rows) + ' 当前列数:' + str(cols))
|
||||
sys.exit()
|
||||
|
||||
elim_id = []
|
||||
@@ -84,7 +84,7 @@ filter = []
|
||||
|
||||
last_choice = ""
|
||||
|
||||
# print("读取数据库成功:" + str(cols) + "列 " + str(rows) + "行")
|
||||
# print("读取数据库成功:" + str(cols) + "列 " + str(rows) + "行")
|
||||
|
||||
for i in range(elim_rows,rows):
|
||||
tmp_list = [str(table.cell_value(i,j)) for j in range(0,cols)]
|
||||
@@ -131,14 +131,14 @@ def sel_class(flag = 1):
|
||||
cur_stu.append(student)
|
||||
else:
|
||||
if flag:
|
||||
msgbox.showwarning('班级选择已应用', '当前设置会选择所有班级的名单,这样对吗?', parent=gui)
|
||||
msgbox.showwarning('班级选择已应用', '当前设置会选择所有班级的名单,这样对吗?', parent=gui)
|
||||
filter = classes[:]
|
||||
cur_stu = students[:]
|
||||
|
||||
def choose():
|
||||
global last_choice, cur_stu
|
||||
sel_class(0)
|
||||
# 触发30%概率,从up中挑选
|
||||
# 触发30%概率,从up中挑选
|
||||
if (random.randint(1,100) < up_percent and percent_override):
|
||||
protection_override = True;
|
||||
temp = []
|
||||
@@ -163,7 +163,7 @@ def choose():
|
||||
choice = random.choice(cur_stu)
|
||||
# print(choice.name)
|
||||
counter = 0;
|
||||
while (last_choice == choice.name and (not protection_override)) or choice.id in elim_id:
|
||||
while (last_choice == choice.name and (not protection_override) and (len(cur_stu) > 1)) or choice.id in elim_id:
|
||||
choice = random.choice(cur_stu)
|
||||
counter = counter + 1
|
||||
if counter >= 100:
|
||||
@@ -174,7 +174,7 @@ def choose():
|
||||
subject_label.config(text = choice.subject)
|
||||
last_choice = choice.name
|
||||
|
||||
startrandom = Button(gui, text = "立刻摇人!", font = ("宋体", 17, "bold"), height = 2, fg = "red", command = choose, bg = "white")
|
||||
startrandom = Button(gui, text = "立刻摇人!", font = ("宋体", 17, "bold"), height = 2, fg = "red", command = choose, bg = "white")
|
||||
|
||||
setclass = Button(gui, text = "应用班级选用", font = ("宋体", 17), height = 2, command = sel_class, bg = "white")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user