|
文/小兵瑞瑞 老爸平时没有什么业余爱好,自从有了福彩,老爸就期期必买5注当作消遣,可是几期下来连个末奖也没中上。因为毕竟是无规则的随机数,所以我决定用随机函数帮他一把。
可是用什么工具编写呢?VC、Delphi我是不灵,不过我还是胸有成竹,因为最近我掌握了一种简单易学的中文编程工具——《发烧积木》。我已经利用它写了几个小软件了,如高速浏览器、同学通讯录等等。如果你也想学,那么就跟我一起来做吧。
模拟现场
先分析一下摇奖过程:箱子里面放32个球,随机地取出7个球(32选7)。当第一个球出来后,这时从31个球中再产生第二个球。直到第七个球出来为止。计算机是如何模拟实现的呢?我也需要有一个大箱子——一个文本文件,里面装着32行文字,第一行对应的文字内容就是“01”,第二行的文字内容是“02”……依此类推。利用一个随机数构件产生随机数,范围是“32”。假设,第一个随机数是“8”,那么就取文本文件第八行,然后删除该行。这时在文本文件中就只剩31行了,前7行的对应关系没有变,而现在第8行,它内容是“09”,依次类推。
机器仿真
让我们开始吧!先建立一个文件夹,取名“福彩之星”,在该文件夹下,建立一个文本文件,名字叫“彩号”。文本内容用32行对应32个数字。
 图1
进入《发烧积木》界面(如图1),整个系统由主控窗口、构件板、项目设置器、项目窗口四个窗口组成,我们将在项目窗口上实现搭积木的过程。
先确定要用到哪些构件:随机数构件,产生随机数以便抽取文本文件的行号;列表框构件,操作预先建立的文本文件;预置循环构件,因为每个彩号的产生过程都是一样的,共需要7次,所以用它可以减少重复性劳动;普通标签构件,显示最终模拟摇奖结果;普通按钮构件,当鼠标单击它的时候,幸运号码产生了。只需对设置预置循环构件的循环开始值属性为“1”,循环结束值属性为“7”。
 图2
下面就是最重要的部分,项目运行时期设置。它相当于其他程序语言的程序代码编写工作,这可是《发烧积木》独一无二的特点,也是它的最为精妙之处,一定要细细体味喔!
事件:单击普通按钮1
操作:在项目窗口选中普通按钮1,在“项目设置器”中选择“事件”页——“单击事件”后双击,弹出“事件设置”窗口进行设置。
事件设置如图2所示。
事件:循环过程
操作:在项目窗口选中预置循环1,进入“事件设置”窗口进行设置。
事件设置如图3所示。
 图3
现在我们用文字模拟一下循环过程。首先,第一次循环,假设产生随机值为“8”,赋给当前项目号。由于物理第一行的行号为“0”,所以当前选择内容为“09”。取普通标签的标题,由于初始化值为“空”,所以把“空”字符、“09”、“-”三个字符进行连接,其结果再赋给普通标签的标题。这样第一次循环后,普通标签的标题为“09-”。第二次循环(在不考虑其他设置情况下),假设随机值为“13”,当前选择内容为“14”,这时普通标签的标题“09-”、“14”、“-”三个字符串进行连接,其结果再赋给普通标签的标题。标题结果为“09-14-”,依此类推。
事件:循环结束
操作:选中预置循环1构件“事件”页,在“事件设置”窗口设置如图4所示。
 图4
内容:当循环结束时,我们会得到“xx-xx-xx-xx-xx-xx-xx-”这样一个字符串,细心的读者会发现该字符串有一小缺陷,最后的小横杠不应该有,不过这是该程序演算下来的必然结果。
解释:得到普通标签的标题,整个标题共21个字符。从第1个到第20个字符进行截取,截取的结果再次赋给普通标签的标题属性。
 图5
这样我的“彩票之星”就做好了。开始运行!运行结果如图5所示。
按此下载本文介绍的软件。
|