基于c#的双色球游戏的设计与实现
2018-01-28何水艳武汉软件工程职业学院
何水艳 武汉软件工程职业学院
一、引言
双色球是中国福利彩票的一种玩法, 完成一个双色球系统有如下规则:实现手工选号(不能出现重复号码);按双色球游戏规则自动选号(不能出现重复号码);模拟开奖;根据开奖结果计算中奖金额等。C#是一个简单的、现代的、通用的、面向对象的编程语言,应用.NET框架,综合运用C#相关知识完成控制台程序的界面设计与实现。通过本系统的开发使学生掌握基于C#程序设计的基本方法,具备一定的控制台应用程序开发的能力,对提高学生软件编程实践操作能力具有现实的指导意义。
二、实现双色球游戏开发的实验设计
应用C#的控制台界面设计与功能模块如下图1所示,包括手工选号,自动选号,模拟开奖、结果对比、界面刷新等功能。这里将在Visual Studio 2015平台下完成双色球游戏开发的实验。
(一)手动选号
由用户手动输入选择的红球和蓝球号码,其中6个红球,1个蓝球。红球范围为1-33,蓝球号码为1-16,所选数字不允许重复,也不允许选择不存在的号码。
为了防止选号数字的重复,可以定义了一个bool类型的数组,数组大小也就是整个红球的数量,从01到33,如果这个号码已经被选了,那么这个bool数组指定号码的位置就被标为true;然后继续随机生成数字,实例化一个随机对象;最后通过随机对象的Next方法,生成01到33的随机数,把它存到一个大小为6的数组中,最终作为变量返回即可。
(二)自动选号
由系统自动生成6个不重复红球号码,1个蓝球号码。红球范围为1-33,蓝球号码为1-16。
生成不重复随机数算法:
1)定义一个数据源,一个接收结果的容器;
2)利用random生成一个指定范围的索引;
3)将随机生成的索引的数据源位置数据赋值给容器的第1个位置;
4)将数据源的最后一个元素赋值给随机索引的位置;
5)随机索引上限减1。
(三)开奖
获取中奖号码和获取机选号码的函数是一样的,在可投注号码范围内,随机选择号码,存入公共静态变量中,如下图所示∶
(四)结果比对
将机选号码或手选号码与开奖号码进行比对,根据比对结果判断中奖等级,并根据投注倍率返回获得奖金的值。
实现算法:
1)分别定义一个统计红球和篮球相同个数的变量;
2)将用户选择的红球与系统开奖开出的红球进行比对,若相同,则统计红球的变量值+1,蓝球同理;
3)根据红球及蓝球相同的个数判断中奖等级,并根据等级计算奖金。
三、结束语
文中设计了基于c#的双色球综合实验,让学生利用所学知识和技能,以项目为驱动,进一步掌握C#程序的开发技术和技巧,强化了学生模块化编程方法; 这将有助于综合掌握C#的基础知识,以及更好的培养学生实践工程能力。本实验设计的另一个特点是,在Visual Studio 2015平台下,完全用它的控制台界面进行编程开发,既充分锻炼了学生的软件编程能力,又有效的达到了实验目标。以上只是笔者的一点经验体会,在教学实际过程中应注意的问题还有很多。