首页 > 代码库 > 数组以及模拟双色球开奖

数组以及模拟双色球开奖

双色球开奖主要是数组的赋值以及电脑随机数的产生

模拟双色球开奖:


int money=0;


int [] cho=new int[6];//红球

int[] last=new int[7];//最后选球结果

int ch=0;//篮球

String a="机选";

String b="自选";

Scanner in=new Scanner(System.in);

System.out.println("请输入选择方式,机选或者自选");

String c=in.next();

if(c.equals(b)){//控制选择的方式为手选

for(int i=0;i<cho.length;i++){//遍历输入数组的值,为红球号码

System.out.println("请输入第"+(i+1)+"个红球");

cho[i]=in.nextInt();

if(cho[i]>33||cho[i]<1){//控制输入的范围

System.out.println("输入超出号数限制,请重新输入");

i--;

}

for(int j=0;j<i;j++){//控制输入号码不能重复

if(cho[i]==cho[j]){

System.out.println("输入号码与前面重复,请重熟入");

i--;

}

}

}

for(int i=1;i<2;i++){ //单独输入蓝球

System.out.println("请输入篮球号码");

ch=in.nextInt();

if(ch>16||ch<1){//控制范围

System.out.println("输入超出限制,请重新输入");

i--;

}

}

}

 else if(c.equals(a)){//控制选择的方式为机选,此后内容同理手选,只是将值改为随机

for(int i=0;i<cho.length;i++){

  cho[i]=(int)(Math.random()*33+1);//随机产生数,遍历赋值给数组

for(int j=0;j<i;j++){

if(cho[i]==cho[j]){

i--;

}

}

}

for(int i=1;i<2;i++){ 

ch=(int)(Math.random()*16+1);

}

}

for(int i=0;i<cho.length;i++){

 for(int j=(i+1);j<cho.length;j++){//对号码进行选择排序,同样可以冒泡

if(cho[j]<cho[i]){

cho[i]=cho[i]^cho[j];

cho[j]=cho[i]^cho[j];

cho[i]=cho[i]^cho[j];

}

}

}

for(int i=0;i<last.length;i++){//将红球与蓝球同时放入一个数组

if(i<last.length-1){

last[i]=cho[i];

}

if(i==(last.length-1)){

last[i]=ch;

}

}

System.out.print("你选择的号码是:");

for(int i=0;i<last.length;i++){//输出该数组作为选择的号码

System.out.print(last[i]+" ");

}



int[]com=new int[7];//开奖数组

int[]com1=new int[6];

        int com2=0;

for(int i=0;i<com1.length;i++){//下面为开奖号码,与机选同理

com1[i]=(int)(Math.random()*33+1);

for(int j=0;j<i;j++){

if(com1[i]==com1[j]){

i--;

}

}

}

for(int i=1;i<2;i++){ 

com2=(int)(Math.random()*16+1);

}

for(int i=0;i<com1.length;i++){

for(int j=(i+1);j<com1.length;j++){

if(com1[j]<com1[i]){

com1[i]=com1[i]^com1[j];

com1[j]=com1[i]^com1[j];

com1[i]=com1[i]^com1[j];

}

}

}

for(int i=0;i<com.length;i++){

if(i<com.length-1){

com[i]=com1[i];

}

if(i==(com.length-1)){

com[i]=com2;

}

}

System.out.print("\n开奖号码是:       ");

for(int i=0;i<com.length;i++){

System.out.print(com[i]+" ");

}

System.out.println("\n中奖结果:");

int count=0;

int count1=0;

for(int i=0;i<cho.length;i++){

for(int j=0;j<cho.length;j++){

if(com1[i]==cho[j]){

count++;

}

}

}

       if(ch==com2){

      count1=1;

       }

      if(count1==1){//开奖结果

     switch(count){

     case 0:

     case 1:

     case 2:System.out.println("恭喜你中了六等奖:5块钱");break;

     case 3:System.out.println("恭喜你中了五等奖:10块钱");break;

     case 4:System.out.println("恭喜你中了四等奖:200块钱");break;

     case 5:System.out.println("恭喜你中了三等奖:3000块钱");break;

     case 6:System.out.println("恭喜你中了一等奖:");break;

     }

      }

      else if(count1==0){

     switch(count){

     case 4:System.out.println("恭喜你中了五等奖:10块钱");break;

     case 5:System.out.println("恭喜你中了四等奖:200块钱");break;

     case 6:System.out.println("恭喜你中了二等奖:赚大了");break;

     default:System.out.println("什么都没得到,请再接再厉");break;

     

     }

      }

当然为了减少代码量这个题可以写一个方法来调用机选方式,同时运用于开奖号码。

深入思考题目,为这个题增加点内容:由用户守号,确定中奖时要买多少期,以及花了多少钱:

只需要将代码稍作改变即可实现:


int pay=0;

int num=0;

    int [] cho=new int[6];//红球

int[] last=new int[7];//最后选球结果

int ch=0;//篮球

String a="机选";

String b="自选";

Scanner in=new Scanner(System.in);

System.out.println("请输入选择方式,机选或者自选");

String c=in.next();

if(c.equals(b)){

for(int i=0;i<cho.length;i++){

System.out.println("请输入第"+(i+1)+"个红球");

cho[i]=in.nextInt();

if(cho[i]>33||cho[i]<1){

System.out.println("输入超出号数限制,请重新输入");

i--;

}

for(int j=0;j<i;j++){

if(cho[i]==cho[j]){

System.out.println("输入号码与 前面重复,请重新输入");

i--;

}

}

}

for(int i=1;i<2;i++){ 

System.out.println("请输入篮球号码");

ch=in.nextInt();

if(ch>16||ch<1){

System.out.println("输入超出限制,请重新输入");

i--;

}

}

}

else if(c.equals(a)){

for(int i=0;i<cho.length;i++){

cho[i]=(int)(Math.random()*33+1);

for(int j=0;j<i;j++){

if(cho[i]==cho[j]){

i--;

}

}

}

for(int i=1;i<2;i++){ 

ch=(int)(Math.random()*16+1);

}

     }

for(int i=0;i<cho.length;i++){

for(int j=(i+1);j<cho.length;j++){

if(cho[j]<cho[i]){

cho[i]=cho[i]^cho[j];

cho[j]=cho[i]^cho[j];

cho[i]=cho[i]^cho[j];

}

}

}

for(int i=0;i<last.length;i++){

if(i<last.length-1){

last[i]=cho[i];

}

if(i==(last.length-1)){

last[i]=ch;

}

}

System.out.print("你选择的号码是:");

for(int i=0;i<last.length;i++){

System.out.print(last[i]+" ");

}

int[]com=new int[7];

int[]com1=new int[6];

        int com2=0;

for(;;){//由死循环控制一直开奖

num++;//由num计数开奖次数,同时等同于购买彩票次数

for(int i=0;i<com1.length;i++){

com1[i]=(int)(Math.random()*33+1);

for(int j=0;j<i;j++){

if(com1[i]==com1[j]){

i--;

}

}

}

for(int i=1;i<2;i++){ 

com2=(int)(Math.random()*16+1);

}

for(int i=0;i<com1.length;i++){

for(int j=(i+1);j<com1.length;j++){

if(com1[j]<com1[i]){

com1[i]=com1[i]^com1[j];

com1[j]=com1[i]^com1[j];

com1[i]=com1[i]^com1[j];

}

}

}

for(int i=0;i<com.length;i++){

if(i<com.length-1){

com[i]=com1[i];

}

if(i==(com.length-1)){

com[i]=com2;

}

}

int count=0;//此处往上代码与,上题同理,此处count用于计数红球中奖个数

int count1=0;//此处用于确定蓝球是否中奖

for(int i=0;i<cho.length;i++){

for(int j=0;j<cho.length;j++){//红球中奖一个则count增加一

if(com1[i]==cho[j]){

count++;

}

}

}

       if(ch==com2){//蓝球中奖则count1为1

      count1=1;

       }

      if(count1==1){

     switch(count){//pay记载每注中奖得金额合计

     case 0:

     case 1:

     case 2:pay+=5;break;

     case 3:pay+=10;break;

     case 4:pay+=200;break;

     case 5:pay+=3000;break;

     case 6:break;

     }

      }

      else if(count1==0){

     switch(count){

     case 4:pay+=10;break;

     case 5:pay+=200;break;

     case 6:pay+=500000;break;

     default:break;

     

     }

      }

      if(count1==1&&count==6){//中一等奖时红球count为6,count1为1,此时输出花掉的钱num*2,购买次数num,以及累计中奖金额。

     System.out.println("恭喜中得一等奖\n你总共买了彩票"+num+"次");

     System.out.println("总共中奖得钱:"+pay);

     System.out.println("总共花钱:"+num*2);

     break;

      }

}


数组以及模拟双色球开奖