该小程序的诞生起源于高中宿舍圣诞节互换礼物的抽签环节,如今我们六人已分隔四方,但我们很希望这个有趣的活动能够保留下来,故做了这个小程序,粗糙地满足随机匹配的需求。
code.py
包含加密和解密方法的模块Xmas_random_file.py
/Xmas_random_wechat
前者本地生成密文本,后者微信在线发送密文run_local.py
/run_online.py
前者用于本地解密,后者用于在线解密
- 加密和解密:详情请参见我的
encode_decode
库 - 随机匹配:
give_dict
键值对记录送出的名字,recv_dict
键值对记录收到的状态- 过程:
- 遍历成员
- 保存当前成员收到的状态
- 设置当前成员收到的状态为-1
- 随机生成送出的名字并判断其收到的状态作出相应的操作
- 还原当前成员收到的状态
- 对键值对打码
- 消息处理:详情请参见我的
Wechat
相关库
- 在
run_online.py
中注意将cipher
替换成自己对应的密文
- 复制本目录下的所有文件至本地
- 可本地生成密文或微信在线发送密文:
- 本地生成:打开相关解释器运行
Xmas_random_file.py
,加密后的内容将写入Xmas_random_file.txt
- 微信发送:打开相关解释器运行
Xmas_random_wechat.py
,参与抽签的人发送Merry Xmas!
,启动抽签的人发送Magic!
,密文即会自动发送
- 本地生成:打开相关解释器运行
- 复制每个人对应的密文,选择一种解密方式进行解密即可:
- 本地解密:打开相关解释器运行
run_local.py
,按照提示输入密文即可 - 在线解密:登录
https://c.runoob.com/compile/9
,复制run_online.py
并替换密文即可
- 本地解密:打开相关解释器运行
- 该小程序的私密性和专用性比较高,可扩展成更广泛适用的抽签器
- 封装程度和代码结构还有待改进(尤其是保存原始状态那个函数)
- 可能会出现两人互送(暂时还未改进算法)和最后一个人只能送给自己(只用断言判断报错,暂时无法自动解决)的情况
Xmas_random_wechat.py
暂时只支持同字长的备注名称,且要求启动抽签的人最后一个参与抽签