在网上看到某位大牛的思路,按着思路写下来的。
- /**
- 模拟双色球开奖系统
- 1.系统随机产生六个红球和一个蓝球
- 2.用户选择红球和蓝球号码
- 3.统计用户的中奖个数
- 4.开奖并输出系统产生的红球和蓝球号码
- */
- import java.util.Scanner;
- import java.util.Random;
- public class homework
- {
- public static void main(String[] args){
- int sysBlueBall;
- int[] sysRedBall = new int[6];
- Random ran = new Random();
- sysBlueBall = ran.nextInt(16)+1;//系统随机产生的蓝球
- int[] red = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33};
- //随机生成红球(这里不用Random方法,是防止因产生相同的号码,而进行比较运算,增加复杂度)
- for (int i=0;i<sysRedBall.length ;i++ )
- {
- while (true)//强制循环
- {
- int num = ran.nextInt(33);//随机产生0至32的数用作red数组的下标
- if (red[num]!=0)
-
- {
- sysRedBall[i] = red[num];
-
- red[num]=0;
- break;
- }
- }
- }
-
- Scanner input = new Scanner(System.in);
- int userBlueBall;
- int[] userRedBall = new int[6];
- System.out.println("请输入一个蓝球号码(1至16之间):");
- userBlueBall = input.nextInt(); //用户选择的蓝球号码
- System.out.println("请输入6个红球号码(1至33之间):");
- for (int i=0;i< userRedBall.length ;i++ )
- {
- userRedBall[i] = input.nextInt(); //用户选择的红球号码
- }
- int blueNum = 0;
- int redNum = 0;//用于存储选中的蓝球和红球个数
- if (sysBlueBall==userBlueBall)
- {
- blueNum = 1;//判断蓝球是否选中
- }
- for (int i=0;i<userRedBall.length ;i++ )
- {
- for (int j=0;j<sysRedBall.length ;j++ )
- {
- if (userRedBall[i]==sysRedBall[j])
- {
- redNum++; //累计红球选中个数
- }
- break;
- }
- }
- //中奖情况
- if (blueNum == 1 && redNum ==6)
- {
- System.out.println("恭喜你中了一等奖!");
- }else if (redNum ==6){
- System.out.println("恭喜你中了二等奖!");
- }else if (blueNum == 1 && redNum ==5)
- {
- System.out.println("恭喜你中了三等奖!");
- }else if (redNum ==5 || (redNum ==4 && blueNum == 1))
- {
- System.out.println("恭喜你中了四等奖!");
- }else if (redNum ==4 || (redNum ==3 && blueNum == 1))
- {
- System.out.println("恭喜你中了五等奖!");
- }else if (blueNum == 1)
- {
- System.out.println("恭喜你中了六等奖!");
- }else {
- System.out.println("没有中奖哦!请继续努力");
- }
- //使用冒泡算法给系统红球排序
- int temp;
- for (int i=0;i<sysRedBall.length-1 ;i++ )
- {
- for (int j=0;j<sysRedBall.length-1-i ;j++ )
- {
- if (sysRedBall[j]>sysRedBall[j+1])
- {
- temp = sysRedBall[j];
- sysRedBall[j] = sysRedBall[j+1];
- sysRedBall[j+1] = temp;
- }
- }
- }
- //输出蓝球号码和红球号码
- System.out.println("本期蓝球号码为: "+sysBlueBall);
- System.out.print("本期红球号码为: ");
- for (int i=0;i <sysRedBall.length ;i++ )
- {
- System.out.print(sysRedBall[i]+" ");
- }
- System.out.println();
- }
- }
复制代码 其中系统随机产生红球没有用Random方法是因为防止随机产生重复数字,而增加反复比较的麻烦。
|
|