• Java基本语法_循环练习系列(一)——模拟双色球


    目前正在自学java中,学完循环这一块,简单写几个例子,使之更加熟练掌握循环语句和条件语句。

    简述一下要这段代码要完成的任务:

    /*有33个红色球,16个蓝色球。 在33个里选6个 ,16个里选1个。 加起来是7个号码。
    一等奖:7个号码相符(6个红色球号码和1个蓝色球号码)(红色球号码顺序不限,下同) 奖金为当期高等奖奖金的70%加上奖金池里的。
    二等奖:6个红色球号码相符; 奖金为当期高等奖奖金的30%
    三等奖:5个红色球号码和1个蓝色球号码相符; 固定3000元。
    四等奖:5个红色球号码或4个红色球号码和1个蓝色球号码相符;固定200元
    五等奖:4个红色球号码或3个红色球号码和1个蓝色球号码相符; 固定10元
    六等奖:1个蓝色球号码相符(有无红色球号码相符均可)。固定5元 */

     1 import java.util.Arrays;
     2 import java.util.Random;
     3 import java.util.Scanner;
     4 
     5 public class Practice12 {
     6 
     7     /**
     8      * @param args
     9      */
    10     public static void main(String[] args) {
    11         // TODO Auto-generated method stub
    12         System.out.println("------双色球游戏开始------");
    13         int[] sysRedBall=new int[6];
    14         int sysBlueBall;
    15         int[] userRedBall=new int[6];
    16         int userBlueBall;
    17         int j=0;
    18         int redCount=0;
    19         int blueCount=0;
    20         int[] redBall={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};
    21         Random r=new Random();
    22         Scanner input=new Scanner(System.in);
    23         //系统开始随机产生
    24         //随机产生一个篮球
    25         sysBlueBall=r.nextInt(16)+1;
    26         
    27         //随机产生6个红球
    28         for(int i=0;i<sysRedBall.length;i++){
    29             //while循环使用了一种算法,避免随机产生相同的数字,随机到的数字取值后就让它赋值为-1(重点,注意看)
    30             while(true){
    31                 j=r.nextInt(33);
    32                 if(redBall[j]!=-1){
    33                     sysRedBall[i]=redBall[j];
    34                     redBall[j]=-1;
    35                     break;
    36                 }
    37             }
    38         }
    39         
    40         
    41         //用户输入
    42         System.out.println("下面请您输入你猜的中奖号码:");
    43         System.out.print("请在数字(1~33)中选择6位数字:");
    44         for(int i=0;i<userRedBall.length;i++){
    45             userRedBall[i]=input.nextInt();
    46         }
    47         System.out.print("请在数字(1~16)中选择1位数字:");
    48         userBlueBall=input.nextInt();
    49         
    50         //统计相同的数量
    51         for(int u=0;u<userRedBall.length;u++){
    52             for(int s=0;s<sysRedBall.length;s++){
    53                 if(userRedBall[u]==sysRedBall[s]){
    54                     redCount++;
    55                     break;
    56                 }
    57             }
    58         }
    59         if(sysBlueBall==userBlueBall){
    60             blueCount=1;
    61         }
    62         //判断得奖状况
    63         if(redCount==6&&blueCount==1){
    64             System.out.println("一等奖,奖金为当期高等奖奖金的70%加上奖金池里的");
    65         }else if(redCount==6){
    66             System.out.println("二等奖,奖金为当期高等奖奖金的30% ");
    67         }else if(redCount==5&&blueCount==1){
    68             System.out.println("三等奖,奖金为3000元 ");
    69         }else if(redCount==5||(redCount==4&&blueCount==1)){
    70             System.out.println("四等奖,奖金为200元  ");
    71         }else if(redCount==4||(redCount==3&&blueCount==1)){
    72             System.out.println("五等奖,奖金为10元 ");
    73         }else if(blueCount==1){
    74             System.out.println("六等奖,奖金为5元 ");
    75         }else{
    76             System.out.println("很遗憾,继续努力! ");
    77         }
    78         //输出本期中奖号码
    79         //Arrays.sort(sysRedBall);//使用API中自带的Arrays类,sort()方法是进行升序排序
    80         //下面for嵌套循环使用了冒泡排序法
    81         for(int i=0;i<sysRedBall.length-1;i++){
    82             for(int h=0;h<sysRedBall.length-1-i;h++){
    83                 if(sysRedBall[h]>sysRedBall[h+1]){
    84                     int temp=sysRedBall[h];
    85                     sysRedBall[h]=sysRedBall[h+1];
    86                     sysRedBall[h+1]=temp;    
    87                 }
    88                 
    89             }
    90         }
    91         System.out.print("本期红球号码为:");
    92         for(int red=0;red<sysRedBall.length;red++){
    93             System.out.print(sysRedBall[red]+" ");
    94         }
    95         System.out.println();
    96         System.out.println("本期篮球号码为:"+sysBlueBall);
    97     }
    98 }

    望各位大神多多指教,给出意见,谢谢啦!

  • 相关阅读:
    从零教你在Linux环境下(ubuntu)如何编译hadoop2.4
    springboot集成redis
    缓存穿透
    关于HashMap,HashTable,HashSet浅析
    关于多线程的几点总结
    java设计模式--工厂模式
    java设计模式--单例模式
    初识Linux(五)--VI/VIM编辑器
    初识Linux(四)--系统常用命令
    初识Linux(三)--文件系统基本结构
  • 原文地址:https://www.cnblogs.com/shenhainixin/p/5055247.html
Copyright © 2020-2023  润新知