Skip to content

AllayFocalors/SeeWang2

Repository files navigation

希王点名2


📘 简介

希王点名2(SeeWang 2,简称CWANG)是一款功能强大且高度可定制的开源点名程序,专为教育场景设计。 本程序由 悦灵云工作室AllayCloud Studio 开发,开发者为 悦灵AllayFocalors。 该软件主要用于教师或教学助理在课堂中快速、公平地抽取学生参与互动,支持多种抽选模式与权重配置, 能够满足不同教学场景下的个性化需求。通过灵活的连锁机制、权重机制和动画效果, 不仅提升了点名效率,也增强了课堂趣味性,还能让老师针对性地特别关照指定同学。

✨ 主要特性

  • 多模式抽选机制
    支持单次抽取、三次抽取以及自定义数量抽取(N 抽),适用于各类教学活动。
  • 权重配置系统
    可对每位学生设置独立权重值,以控制其被抽中的概率 例如:对于需要重点关注的学生,可适当提高其权重值,实现“有倾向性的随机”。 此外,除了针对指定学生个体,还可以将学生不编组,实现分组权重配置, 让指定群体学生都接受老师的“特别关照”
  • 连锁抽取功能
    支持配置连锁关系,当某位学生被抽中后,系统将根据预设规则自动抽取下一位学生, 便于组织问答接力、小组合作等教学环节。
  • 可视化界面与动画效果
    提供图形化操作界面,并内置两种动画样式, 增强用户交互体验。同时支持禁用动画,适应不同设备性能环境。 (目前自定义动画功能正在开发中,敬请期待~)
  • 小窗模式支持
    支持切换至迷你窗口模式,方便在主屏幕展示其他内容的同时保持点名界面随时可用。 老师们可以一边放课件,一边在小窗抽人。
  • 配置文件导入与导出
    用户可通过外部文本文件快速导入或导出配置信息,包括学生名单、权重值、组别等,提升配置管理效率。 老师们可以在私人电脑上编辑配置文件,并快速导入到教室电脑中。实现“一次编辑,处处同步”。
  • 日志记录功能
    所有点名结果均会记录到本地日志文件中,便于后续统计分析与回顾。
  • 周报生成模块(待优化)
    支持一键生成教学周报,汇总本周点名情况,辅助教学评估与反馈。
  • 开发者友好选项
    包含动画持续时间调节、手动干预机制等高级设置,适合二次开发与调试。

📄 许可证

本项目采用 MIT License 开源协议许可证,详情见 LICENSE 文件。

MIT License 是一种宽松自由的开源许可协议,允许您在商业产品中自由使用、修改和分发代码,仅需保留原始版权信息即可。

🧩 依赖库说明

本项目基于以下 Python 第三方库构建:

  • tkinter & ttk:用于构建图形用户界面(GUI)
  • PIL / Pillow:图像处理与图标加载
  • ffpyplayer:视频播放支持(用于动画效果)
  • json:配置文件读写
  • os, sys, time:系统资源与流程控制
  • random:随机抽取算法核心 请运行前确保已经安装上述依赖库。安装方式见“常见问题解决方案”之1.

🛠️ 安装与运行

💻 Windows 平台运行方式:

  1. 确保已安装 Python 3.x 环境
  2. 将本项目完整解压至本地目录
  3. 在终端中进入项目根目录并运行
python main.py

当看到程序主界面出现时,您即可开始使用希王点名2。

❓ 常见问题解决方案

您所下载到的CWANG是经过开发者全面调试过的,一般没有明显问题。 如果您无法正常运行CWANG,请观察控制台的异常输出,并看看能否通过下面提供的方式解决。

1. ModuleNotFoundError: No module named 'XXX'

这往往是没有安装依赖的第三方库导致的。在终端中运行下面的代码以安装确实库即可。

pip install XXX

2. FileNotFoundError: [Errno 2] No such file or directory: 'config.txt/chain_config.txt/dev_options.json':

这往往意味着没有找到相关配置文件,请检查项目根目录下是否存在 config.txt/chain_config.txt/dev_options.json 文件。 没有的话自己创建一个即可(注意大小写哦!)

3. 我明明还没抽完所有对象,点击抽人却没有反应

请检查配置文件config.txt是否正确。注意:配置文件里千万不能有重名!不然就很可能出现上述bug。

4. 其他没列出的问题

请自行搜索或咨询开发者(联系方式见文末)。

🔡 算法简析

权重抽人使用的算法:抽签筒算法

核心程序位于WeightChoice.pyget_config()choose()函数。
通过读取配置文件(config.txt)获取每个学生的名字与权重值。 我们有一个抽签筒,在抽签筒里面放入 n1 个 m1 , n2 个 m2, n3 个 m3, ..., nk 个 mk. 其中,mi 为学生名, ni 为学生权重。 接着我们在抽签筒里随机抽一个人。由于权重越大的学生占有抽签筒的空间(用比重形容更合适)也越大, 所以我们有更大的概率抽到大权重的对象。

连锁抽人使用的算法:没想好名叫啥

核心程序位于WeightChoice.pyget_chain_config()load_chain_config()choose()函数。
大致就是读取连锁配置后生成一个链表字典,抽取的时候检查一下,如果匹配就添加到next_obj里预备下一次抽取。

🤝 贡献与维护

我们欢迎所有开发者参与到 SeeWang 2 的功能扩展与优化中来。 无论您是码农、教师亦或是学生,我们都真诚听取您的意见或建议。 如果您发现任何 bug 或有改进建议,请提交 Issue 或 Pull Request。

📬 致谢

感谢所有为本项目提供技术支持与建议的贡献者,同时也感谢开源社区的支持。 如有疑问或需要技术支持,请联系 悦灵云工作室。 悦灵云工作室联系方式:AllayFocalors@163.com

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors