JavaSE练习——双色球

简介: JavaSE练习——双色球

 规则:

红色球号码中选择6个号码,从蓝色球号码中选择1个号码,组合为一注

红色球号码的范围为1-33(且不能重复),蓝色球号码为1-16;

中奖方法为:

6 6 5 5 4 2
1 0 1 0 1 1
奖金 1000 500 300 200 10 5

根据规则要创建一个6+1的数组,并随机生成中奖号码。

public static int[] createNumber() {
    //添加中奖号码
    //6红1蓝
    int arr[] = new int[7];
    //随机生成
    Random r = new Random();
    for(int i=0; i<6; ) {
      //获取红球号码
      int redNumber = r.nextInt(33)+1;
      boolean flag = contains(arr, redNumber);
      if(!flag) {
        arr[i]=redNumber;
        i++;
      }
    }
    //生成篮球号码
    int bludNumber = r.nextInt(16)+1;
    arr[arr.length-1] = bludNumber;
    return arr;
  }

image.gif

再创建一组6+1的数组来模拟用户所购买的号码

public static int[] userInputNumber(){
    //创建数组用于添加用户购买的彩票号码
    int arr[] = new int[7];
    //用户输入
    Scanner sc  = new Scanner(System.in);
    //红球
    for(int i=0;i<6;){
      System.out.println("请输入"+ (i+1)+"红球号码");
      int redNumber = sc.nextInt();
      if(redNumber>=1&&redNumber<=33) {
        boolean flag = contains(arr,redNumber);
        if(!flag){
          arr[i]=redNumber;
          i++;
        }else {
          System.out.println("已存在");
        }
      }else {
        System.out.println("超出范围");
      }
    }
    //输入蓝球
    System.out.println("输入篮球号码");
    while (true) {
      int blueNumber = sc.nextInt();
      if(blueNumber>=1&&blueNumber<=16){
        arr[arr.length-1]=blueNumber;
        break;
      }else {
        System.out.println("超出范围");
      }
    }
    return arr;
  }

image.gif

判断数组是否创建成功

//判断数组是否存在
  public static boolean contains(int[] arr, int number) {
    for(int i=0;i<arr.length;i++) {
      if(arr[i]==number) {
        return true;
      }
    }
    return false;
  }

image.gif

最终根据两组数组中号码对比,告诉用户中多少奖金。

int buleNumber = userInputArr[userInputArr.length-1];
    if(buleNumber == arr[arr.length-1]){
      blueCount++;
    }
    //判断中奖情况
    if(redCount==6&&blueCount==1){
      System.out.println("中1000");
    }else if(redCount==6&&blueCount==0) {
      System.out.println("中500");
    }else if(redCount==5&&blueCount==1) {
      System.out.println("中300");
    }else if(redCount==5&&blueCount==0) {
      System.out.println("中200");
    }else if(redCount==4&&blueCount==0) {
      System.out.println("中10");
    }else if(redCount==2&&blueCount==1) {
      System.out.println("中5");
    }else {
      System.out.println("未中奖");
      }
    }

image.gif

效果图呈现(最上面一行为中奖号码):

image.gif编辑

程序完整代码:

import java.util.Random;
import java.util.Scanner;
public class ShuangSeQiu {
  public static void main(String[] arge) {
    //生成中奖号码
    int arr[] = createNumber();
    System.out.println("==============");
    for (int i=0;i<arr.length;i++){
      System.out.print(arr[i]+" ");
    }
    System.out.println();
    System.out.println("==============");
    //用户输入号码
    int [] userInputArr = userInputNumber();
    //判断
    int redCount = 0;
    int blueCount = 0;
    for(int i=0 ;i<userInputArr.length;i++){
      int redNumber = userInputArr[i];
      for(int j=0;j< arr.length-1;j++){
        if(redNumber == arr[j]){
          redCount++;
          break;
        }
      }
    }
    int buleNumber = userInputArr[userInputArr.length-1];
    if(buleNumber == arr[arr.length-1]){
      blueCount++;
    }
    //判断中奖情况
    if(redCount==6&&blueCount==1){
      System.out.println("中1000");
    }else if(redCount==6&&blueCount==0) {
      System.out.println("中500");
    }else if(redCount==5&&blueCount==1) {
      System.out.println("中300");
    }else if(redCount==5&&blueCount==0) {
      System.out.println("中200");
    }else if(redCount==4&&blueCount==0) {
      System.out.println("中10");
    }else if(redCount==2&&blueCount==1) {
      System.out.println("中5");
    }else {
      System.out.println("未中奖");
      }
    }
  public static int[] userInputNumber(){
    //创建数组用于添加用户购买的彩票号码
    int arr[] = new int[7];
    //用户输入
    Scanner sc  = new Scanner(System.in);
    //红球
    for(int i=0;i<6;){
      System.out.println("请输入"+ (i+1)+"红球号码");
      int redNumber = sc.nextInt();
      if(redNumber>=1&&redNumber<=33) {
        boolean flag = contains(arr,redNumber);
        if(!flag){
          arr[i]=redNumber;
          i++;
        }else {
          System.out.println("已存在");
        }
      }else {
        System.out.println("超出范围");
      }
    }
    //输入蓝球
    System.out.println("输入篮球号码");
    while (true) {
      int blueNumber = sc.nextInt();
      if(blueNumber>=1&&blueNumber<=16){
        arr[arr.length-1]=blueNumber;
        break;
      }else {
        System.out.println("超出范围");
      }
    }
    return arr;
  }
  public static int[] createNumber() {
    //添加中奖号码
    //6红1蓝
    int arr[] = new int[7];
    //随机生成
    Random r = new Random();
    for(int i=0; i<6; ) {
      //获取红球号码
      int redNumber = r.nextInt(33)+1;
      boolean flag = contains(arr, redNumber);
      if(!flag) {
        arr[i]=redNumber;
        i++;
      }
    }
    //生成篮球号码
    int bludNumber = r.nextInt(16)+1;
    arr[arr.length-1] = bludNumber;
    return arr;
  }
  //判断数组是否存在
  public static boolean contains(int[] arr, int number) {
    for(int i=0;i<arr.length;i++) {
      if(arr[i]==number) {
        return true;
      }
    }
    return false;
  }
}

image.gif

至此JavaSE练习——双色球小编已经分享完了。

感谢每一个观看本篇文章的朋友,更多精彩敬请期待。  

文章多处存在借鉴,如有侵权请联系修改删除!image.gif编辑


相关文章
|
5月前
|
Java
中秋节怎么能少了月饼(java)
中秋节怎么能少了月饼(java)
Java完成迪迦奥特曼打小怪兽
Java完成迪迦奥特曼打小怪兽
208 0
|
Java
java双色球投注和开奖程序
java双色球投注和开奖程序
99 0
《JavaSE-习题篇一》之小题目,大道理
《JavaSE-习题篇一》之小题目,大道理
121 0
|
Java
【Java】 三国大乱斗部分代码
【Java】 三国大乱斗部分代码
120 0
|
安全 Java 编译器
JavaSE笔记--韩顺平(入门详细版)(五)
JavaSE笔记--韩顺平(入门详细版)(五)
145 4
|
存储 设计模式 算法
JavaSE笔记--韩顺平(入门详细版)(一)
JavaSE笔记--韩顺平(入门详细版)(一)
517 3
|
存储 网络协议 安全
JavaSE笔记--韩顺平(入门详细版)(四)
JavaSE笔记--韩顺平(入门详细版)(四)
172 2
|
Java C++ Python
蓝桥公园——JAVA
蓝桥公园——JAVA
87 0
|
Java 测试技术
蓝桥杯(java砝码称重)
你有一架天平和 N 个砝码,这N 个砝码重量依次是 1,2,⋅⋅⋅,W1,W2,⋅⋅⋅,WN。 请你计算一共可以称出多少种不同的重量? 注意砝码可以放在天平两边。
79 0