小案例,应用数组实现双色球判断中奖情况 调用的的前面代码块里的函数,如有疑问看看前一个代码块封装的方法
下面有前一个代码块的链接
package com.demo.lesson4;
import com.demo.publicTools.Tools;
/**
* @author MR zjw
*
*2017-3-1
*/
public class WinNumgame {
/**
* 双色球游戏
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//实例化对象
WinNumgame wn=new WinNumgame();
Arraydemo ad=new Arraydemo();
Tools tool=new Tools();
//用户输入7个数并存入数组user_num中,6个红色球,1个蓝色球号码
//用户输入红色球
int[] user_num=new int[7];
for(int i=0;i<6;i++){
System.out.println("请输入你的红色球幸运数字:");
int userNum=tool.getScannerInt();
int repeat=wn.checkRrpeat(userNum,user_num);//调用判断是否重复的函数,repeat接收返回值-1或0.
user_num[i]=userNum;
if(repeat==-1){
i=i-1;
System.out.println("你输入的数字重复,请重新输入");
}
else if(userNum>33||userNum<1){
i=i-1;
System.out.println("你输入的数字在范围外,请重新输入");
}
}
//用户输入的蓝色球数字
int userNum_blue;
do{
System.out.println("请输入你的蓝色球幸运数字:");
userNum_blue=tool.getScannerInt();//将用户输入的数字用userNum_blue接收
user_num[6]=userNum_blue;
//判断是否在1-16的数字
if(userNum_blue>16||userNum_blue<1){
System.out.println("你输入的数字在范围外,请重新输入");
}
}while(userNum_blue>16||userNum_blue<1);
System.out.println("用户输入的号码");
for(int e:user_num){
System.out.print(e+",");
}
System.out.println();
//随机生成7个中奖号码并插入RandomNum数组中(6个红色球,1个蓝色球)
System.out.println("双色球中奖号码");
//随机生成6个红色球中奖号码
int[] RandomNum=new int[7];
for(int i=0;i<6;i++){
int raNum=tool.getMathRandomNM(1,32);
int repeat=wn.checkRrpeat(raNum,RandomNum);//调用判断重复的函数,repeat接收返回值-1或0.
RandomNum[i]=raNum;
if(repeat==-1){
i=i-1;
}
}
//随机生成1个蓝色球中奖号码
int RandomNum_blue=tool.getMathRandomNM(1, 16);
RandomNum[6]=RandomNum_blue;
for(int e:RandomNum){
System.out.print(e+",");
}
System.out.println();
//将用户的号码拿出一个来与中奖号码比较
int j;
int sum = 0;//计数用户红色球中奖个数
for(int i=0;i<6;i++){
RandomNum=ad.paixun_maopao(RandomNum);//调用Arraydemo类的冒泡排序,排序数组前6为值的大小
j=ad.chaiban(RandomNum,user_num[i]);//j接收拆分查询函数返回的值,若为-1就红色球不一致,否则一致
if(j!=-1){
sum=sum+1;
}
}
//判断是否中奖
//中奖规则如果蓝色球一致,红色球中0-2个为6等奖。。。
//中奖等级
String winGrade;
//调用判断是否中奖的函数,返回1等2等...奖,并用winGrade接收返回值,返回字符串为空格则未中奖。
winGrade=wn.checkLuck(RandomNum_blue, userNum_blue, sum);
if(winGrade==" "){
System.out.println("抱歉,你没有中奖");
}
else{
System.out.println("恭喜!你中了"+winGrade+"等奖");
}
}
/**
* 传入一个value值,如果与数组里的值不一样就插入,否则就返回-1,重新输入或生成一个数字
*/
public int checkRrpeat(int value,int[] arr){
int s = 0;
for(int i=0;i