首页
学习
活动
专区
工具
TVP
发布

一个简单的抽人程序

学一点编程,透过代码看本质

抽人程序介绍

用 C# 制作了一个抽人的 Windows 小程序。

控件部分 : TextBoxt 作为展示 、两个 Button 作为按钮 (抽一次、换文件)、label 作为信息提示、openFileDialog 控件来打开文本、timer 计时器用来计时定时结束。

功能 : 可以切换不同的 Txt 文件作为抽取的数据源(需要将抽取项单独为一行),每点击一次 “ 抽一次 ” 按钮 文本框中都会切换不同的抽取人,在 1 秒后自动停止显示随机抽取到的人,实现了无重复、随机抽取的功能。

程序界面

能否暗箱操作?

自己写完一个抽奖小程序后就应该很难相信抽奖的真实性,根据代码分析。

从 17 行代码 textBox1.Text = arry[tempNum] 可见最终显示结束时展示的姓名或奖品是可以修改或指定的。

现实生活中的所有抽奖,机器博彩大体都是这种套路,在我们相信下一次就能人品爆棚,化身锦鲤时,最终的结果早已被人指定。

是在互联网时代,一起玩游戏的是人还是狗都无法确认了,又怎能相信纯粹以道德来约束的抽奖呢?

玩游戏的狗

如何实现切换不同的文件

借助于 C# 窗体提供的 openFileDialog 控件,对文件进行读取和过滤,当选中新文件后将 fileName 变量改变成新文件的路径,在重新抽取时读取新的数据源。

readTxt() 函数的具体实现

通过 StreamReader 类读取 txt 文档,以 「 GB2312 」的编码格式打开,ReadLine 逐行读取,并添加至 List, 当所读取的那一行数据为 null 即读到数据尾部时,停止读取,并关闭数据连接。

抽一次按钮代码

初始定义

随机数的产生

C# Random 类的定义,采用伪随机数生成器生成随机数。有兴趣的朋友可以自行查找定义,原理是 「 线性同余 」,当 Random 对象的实例化和随机数的产生在同一循环代码时,很有可能随机产生的数字相同,因为在伪随机数器生成随机数时采用了相同的 「 种子值 」。

维基百科参考

线性同余方法维基百科

引申 C# Random 类定义

代码以及应用程序可在公众号后台发送「 抽人 」获取

如果文章阅读有问题欢迎探讨 ,了解更多 编程 方面的知识可以看这几篇文章

你的点赞、评价或转发都是对我最好的支持。感谢你的观看,希望和你一起成长。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190104G19YC000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券