21xrx.com
2024-09-17 04:06:56 Tuesday
登录
文章检索 我的文章 写文章
用Java实现双色球选号程序
2023-06-15 16:50:43 深夜i     --     --
Java编程 双色球选号 代码案例

写一篇文章,介绍如何使用Java编写一个简单的双色球选号程序,让读者了解基本的Java编程知识,并且能够通过代码实现双色球的选号过程。

双色球选号程序代码案例:


import java.util.Arrays;

import java.util.Random;

import java.util.Scanner;

public class DoubleColorBall {

  public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);

    System.out.println("双色球选号开始:" + "\n" + "请输入您选的红球号码(1-33):");

    int[] redBalls = new int[6];

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

      int redBall = sc.nextInt();

      // 判断输入的红球号码是否合法

      if (redBall < 1 || redBall > 33 || contains(redBalls, redBall)) {

        System.out.println("您输入的红球号码不合法,请重新输入:" + "\n");

        i--;

        continue;

      }

      redBalls[i] = redBall;

    }

    System.out.println("您选的红球号码为:" + Arrays.toString(redBalls) + "\n" + "请输入您选的蓝球号码(1-16):");

    int blueBall = sc.nextInt();

    // 判断输入的蓝球号码是否合法

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

      System.out.println("您输入的蓝球号码不合法,请重新输入:" + "\n");

      blueBall = sc.nextInt();

    }

    System.out.println("您选的双色球号码为:" + Arrays.toString(redBalls) + " + " + blueBall);

    // 使用随机数生成一组双色球号码,用于对比和比较

    int[] randomBalls = generateRandomBalls();

    System.out.println("电脑选的双色球号码为:" + Arrays.toString(randomBalls));

    int redCount = countRedBalls(redBalls, randomBalls);

    boolean isBlueEqual = isEqual(blueBall, randomBalls[6]);

    if (redCount == 6 && isBlueEqual) {

      System.out.println("恭喜您,中了一等奖!");

    } else if (redCount == 6) {

      System.out.println("恭喜您,中了二等奖!");

    } else if (redCount == 5 && isBlueEqual) {

      System.out.println("恭喜您,中了三等奖!");

    } else if (redCount == 5 || (redCount == 4 && isBlueEqual)) {

      System.out.println("恭喜您,中了四等奖!");

    } else if (redCount == 4 || (redCount == 3 && isBlueEqual)) {

      System.out.println("恭喜您,中了五等奖!");

    } else if (isBlueEqual) {

      System.out.println("恭喜您,中了六等奖!");

    } else {

      System.out.println("很抱歉,您没有中奖,再接再厉!");

    }

    sc.close();

  }

  /**

   * 生成随机的双色球号码

   */

  private static int[] generateRandomBalls() {

    Random random = new Random();

    int[] redBalls = new int[6];

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

      // 随机生成1-33之间不重复的红球号码

      int redBall;

      do {

        redBall = random.nextInt(33) + 1;

      } while (contains(redBalls, redBall));

      redBalls[i] = redBall;

    }

    // 随机生成1-16之间的蓝球号码

    int blueBall = random.nextInt(16) + 1;

    return new int[] { redBalls[0], redBalls[1], redBalls[2], redBalls[3], redBalls[4], redBalls[5], blueBall };

  }

  /**

   * 判断数组中是否包含指定的元素

   */

  private static boolean contains(int[] arr, int target) {

    for (int i : arr) {

      if (i == target)

        return true;

      

    }

    return false;

  }

  /**

   * 统计两组红球号码中相同的个数

   */

  private static int countRedBalls(int[] arr1, int[] arr2) {

    int count = 0;

    for (int i : arr1) {

      for (int j : arr2) {

        if (i == j) {

          count++;

          break;

        }

      }

    }

    return count;

  }

  /**

   * 判断两个数字是否相同

   */

  private static boolean isEqual(int num1, int num2)

    return num1 == num2;

  

}

这个程序主要包括以下几个步骤:

1. 提示用户输入红球号码和蓝球号码,使用Scanner类获取用户输入的号码。

2. 对于红球号码,先判断是否合法(1-33之间且不重复),如果不合法要求用户重新输入。

3. 对于蓝球号码,判断是否合法(1-16之间),如果不合法要求用户重新输入。

4. 输出用户输入的双色球号码和电脑选的双色球号码。

5. 比较用户输入的红球号码和电脑选的红球号码,统计两组号码中相同的个数(即红球个数),以及蓝球是否相同。

6. 根据红球个数和蓝球是否相同来判断是否中奖,输出结果。

三个

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复