Visual Basic小游戏:猜英雄.doc_第1页
Visual Basic小游戏:猜英雄.doc_第2页
Visual Basic小游戏:猜英雄.doc_第3页
Visual Basic小游戏:猜英雄.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

相信不少读者都看过央视的水浒吧,林冲、武松、李逵等英雄好汉的音容笑貌仿佛还浮现在我的眼前,那么108将中你最喜欢谁呢?我做了一个小程序来让电脑猜测你的心思,程序界面如图所示。为了简化问题,我选择了其中的27将,将他们分成3组,每组9人。如果你最喜欢其中的一个(比如史进),他在第一组出现了,那么就按下按钮“第一组”。然后这27将会重新排列顺序,你再找史进在哪一组,比如发现他在第二组,就按下按钮“第二组”,画面中的人物次序会再次打乱,再找史进所在组别最多3次,电脑将会猜出你心中的英雄!知道了玩法,下面我将介绍程序是如何实现的:一、猜测的奥妙推算原理猜测的原理其实也不复杂,我们来模拟一下猜测的过程大家就清楚了。程序初始化时是把127将随机打乱分别放入PageControl控件的三个选项卡中,每个选项卡放9张图片。点击一次按钮后其实不是盲目地将顺序打乱,而是进行了筛选,把有用的图片(就是点选的那组的9张图片)筛选出来平均分配到PageControl控件的三个选项卡中,再把不需要的图片集中起来平均分配到PageControl控件的三个选项卡中,最后在各个选项卡中把有用的、无用的图片随机打乱再次重新排列显示出来,从而完成猜测。用表1来说明:点击按钮的次数选项卡1选项卡2 选项卡31 3 3321113000具体讲,当第一次按下按钮时,表示你相中的图片在其中一个选项卡的9张图片内。于是把这9张图片均分成3份,每份3张,分别送入3个选项卡,其余的图片就不做考虑了。当第二次按下按钮时,表示你相中的图片在其中一个选项卡的3张图片内,于是把这3张图片均分成3份,每份1张,分别送入3个选项卡,当第三次按下按钮时,表示你相中的图片在其中一个选项卡的1张图片内,毫无疑问,这张图片就是你相中的图片,于是程序把这张图片显示出来。打乱重排的算法在程序中的很多地方要涉及打乱顺序重排的问题,下面我们就来先简单介绍一下打乱是如何实现的。这里要实现的方法是比较简单的,也就是多次把数组的不同位置的值互换,就像读小学时老师让两个同学互换位置一样,老师不断随机抽两个同学互换位置,最后同学们的座位就都重新排了一遍。举个例子:int I,temp1,temp2,a2,b27for(i=1;i=27;i+)/先对数组赋初值bi=I;randomize();for(i=1;iClear();for(i=1;iItems-Add(IntToStr(bi);如上例所示,经过打乱,b27数组将不再是旧时容颜。二、实现的关键筛选算法的介绍在整个实现的过程中,如何在每一次打乱后对人物进行筛选是程序的关键所在,处理不好,程序就不会有结果。而且筛选很容易把你搅得头晕脑胀,所以涉及的各个数组之间的关系一定要先理顺,先用一个例子来解释如何进行筛选。以点击按钮的次数是第一次并且点击的按钮是Button1为例加以介绍,其思路如下:初始:第一次执行按钮事件并且按下的是Button1时(表a的数组就是关键数组):把表a打乱后平均拆分为3组分别送入内存缓冲区把表b和表c打乱后也平均拆分为3组分别送入内存缓冲区(非重要的数组),然后将它们进行组合,分别把有用的和无用的搭配重新组合为三张表并显示出来:把全部的筛选过程表述出来:1.初始化:把a1-27打乱并将a1-9 赋给first1-9a10-18 赋给second1-9a19-27 赋给third1-92.第一次按钮事件(假设选中的是第二个选项卡)second1-9打乱后赋给temp11-3、temp21-3、temp31-3a1-9+a19-27赋给temp41-18 并打乱temp11-3temp41-6赋给first1-9并打乱temp21-3temp47-12赋给second1-9 并打乱temp31-3temp413-18赋给third1-9 并打乱3.第二次按钮事件(假设选中的是第二个选项卡)temp21-3打乱后赋给temp51、 temp61 、temp71temp11-3+temp31-3+temp41-18赋给temp81-24并打乱temp51temp81-8赋给first1-9 并打乱temp52temp89-16赋给second1-9 并打乱temp53temp817-24赋给third1-9 并打乱4.第三次按钮事件(如果选中的是第二个选项卡)把temp52所对应的图片显示出来即可。最后分别把表a表c打乱后显示出来即可。 进行二次、多次筛选的方法都一样,只是要注意相中的好汉在哪个数组里面,千万别搞错就行了。三、小结最后的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论