用数组实现双色球的功能,可自选和机选,机选时自动生成用户双色球号码,手选时,自己录入双色球号码(红球1~32,蓝球1~16),并且自动生成中奖号码,并判定是否中奖 public static void main(String[] args) { int[] userBalls=new int[7]; int[] awardBalls; Scanner scanner=new Scanner(System.in); System.out.println("请选择购买的方式: 1:机选 2:手选"); int choose=scanner.nextInt(); if (choose==1){ userBalls=creat(); awardBalls=creat(); System.out.println("机器帮你选择的号如下:"); printBall(userBalls); System.out.println("中奖号码如下:"); printBall(awardBalls); System.out.println("正在查询是否中奖,请稍后...."); retrieve(userBalls,awardBalls); }else if(choose==2){ int temp; //输入第一个红球 System.out.println("请输入第一个红球号码"); temp=scanner.nextInt(); userBalls[0]=temp; //输入第2到第6个红球,防止重复和超出范围 for (int i = 1; i < 6; i++) { System.out.println("请输入第"+(i+1)+"个红球号码"); temp=scanner.nextInt(); if (temp<1||temp>32){ System.out.println("号码输入错误"); i--; }else if (judge(temp,userBalls,i)){ System.out.println("号码重复"); i--; } } //手动输入蓝球 boolean svCode=true; while (svCode){ System.out.println("请输入蓝球号码"); temp=scanner.nextInt(); if(temp>0&&temp<16){ svCode=false; userBalls[6]=temp; } else { System.out.println("号码输入错误"); } } //展示自己选的号码和中奖号码,并判断是否中奖 System.out.println("自己选择的号如下:"); printBall(userBalls); System.out.println("中奖号码如下:"); awardBalls=creat(); printBall(awardBalls); System.out.println("正在查询是否中奖,请稍后...."); retrieve(userBalls,awardBalls); }else { System.out.println("输入错误"); } } //电脑自动生成球 public static int[] creat(){ int tempId; int[] balls=new int[7]; boolean b1=true; int bzf=0; while (b1) { balls[0] = (int) (Math.random() * 32) + 1; for (int i = 1; i < 6; i++) { tempId = (int) (Math.random() * 32) + 1; for (int j = 0; j < i; j++) { if (tempId == balls[j]) { tempId=0; } } balls[i] = tempId; } for (int a = 0; a < 6; a++) { if (balls[a] == 0) { bzf++; } } if (bzf==0) { b1 = false; } } balls[6]=(int) (Math.random() * 16)+1; return balls; } //输出球号码 public static void printBall(int[] ints){ System.out.print("红球号码有:"); for (int i = 0; i <6 ; i++) { System.out.print(ints[i]+" "); } System.out.println("蓝球号码为:"+ ints[6]); } //查询是否中奖 public static void retrieve(int[] ints1,int[] ints2){ int blueBall=0; int redBall=0; if (ints1[6]==ints2[6]) blueBall=1; for (int i = 0; i <6 ; i++) { for (int j = i+1; j < 6; j++) { if (ints1[i]==ints2[j]) redBall++; } } if(redBall==6&&blueBall==1){ System.out.println("恭喜你中了一等奖"); } else if(redBall==6){ System.out.println("恭喜你中了二等奖"); }else if(redBall==5&&blueBall==1){ System.out.println("恭喜你中了三等奖"); }else if((redBall==4&&blueBall==1)||(redBall==5)){ System.out.println("恭喜你中了四等奖"); }else if((redBall==4)||(redBall==3&&blueBall==1)){ System.out.println("恭喜你中了五等奖"); }else if(redBall>=0&&blueBall==1){ System.out.println("恭喜你中了六等奖"); }else System.out.println("不好意思,你没有中奖"); } //向数组中添加元素并判断否重复 public static boolean judge(int temp,int[] ints,int i){ int svCode=0; for (int j = 0; j <i ; j++) { if (temp==ints[j]) svCode++; break; } if (svCode == 0) { ints[i]=temp; return false; }else { return true; } }
java数组实现双色球
最新推荐文章于 2023-11-22 11:04:30 发布