JAVASE基础(巩固之前所学知识——双色球小游戏)

eg:
package com.lhs;
//双色球案例

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

/**
 * 双色球案例
 * 模拟6红+1蓝
 * 系统和用户都会出6个红球和1个篮球
 */
public class Test14 {
    public static void main(String[] args) {
        //定义相关的变量
        int[] userRedBall = new int[6];//用户红球号码
        int[] sysRedBall = new int[6];//系统生成的红球号码
        int userBlueBall = 0;//用户的蓝色号码
        int sysBlueBall = 0;//系统的蓝色号码
        int redCount = 0;//用户才对红球的个数
        int blueCount = 0;//用户选择蓝色求得个数
        int[] redBall = new int[33];
        //需要随机生成6个1——33之间不重复的数(算法)
        for (int i = 0; i < redBall.length; i++) {
            redBall[i] = i+1;
        }
        System.out.println("游戏开始:祝你好运!");
        System.out.println("1:机选   2:手选");

        Scanner input = new Scanner(System.in);
        Random r = new Random();
        boolean flag = true;
        while (flag){
            int isAuto = input.nextInt();
            switch (isAuto){
                case 1:
                    //机选
                    computerSelection(redBall,userRedBall);//机选红球
                    userBlueBall = r.nextInt(16)+1;//机选篮球
                    flag = false;
                    break;
                case 2:
                    //手选
                    System.out.println("请选择6个红色号码:");
                    for (int i = 0; i < userRedBall.length; i++) {
                        userRedBall[i] = input.nextInt();
                    }
                    System.out.println("请选择1个蓝色号码:");
                    userBlueBall = input.nextInt();
                    flag = false;
                    break;
                default:
                    System.out.println("输入错误,请重新输入 /n 1:机选   2:手选");
                    break;
            }
        }

        //系统随机生成号码
        //红球
        computerSelection(redBall,sysRedBall);
        //蓝球
        sysBlueBall = r.nextInt(16)+1;


        //统计结果
        //统计红球
        for (int i = 0; i < userRedBall.length; i++) {
            for (int j = 0; j < sysRedBall.length; j++) {
                if (userRedBall[i] == sysRedBall[j]){
                    int temp = sysRedBall[j];
                    sysRedBall[j] = sysRedBall[sysRedBall.length-1-redCount];
                    sysRedBall[sysRedBall.length-1-redCount] = temp;
                    redCount++;
                    break;
                }
            }
        }
        //统计蓝球
        if (userBlueBall==sysBlueBall){
            blueCount = 1;
        }
        //验证是否中奖
        if (blueCount == 0 && redCount <= 1){
            System.out.println("没中奖");
        }else if (blueCount == 1 && redCount < 3){
            System.out.println("六等奖");
        }else if ((blueCount == 1 && redCount == 3) ||
        (blueCount == 0 &&redCount == 4)){
            System.out.println("五等奖");
        }else if ((blueCount == 1 && redCount == 4)||
                (blueCount == 0 && redCount == 5)){
            System.out.println("四等奖");
        }else if ((blueCount == 1 && redCount == 5)){
            System.out.println("三等奖");
        }else if ((blueCount == 0 && redCount == 6)){
            System.out.println("二等奖");
        }else if (blueCount == 1 && redCount == 6){
            System.out.println("一等奖");
        }else {
            System.out.println("出错啦!");
        }

         //公布中奖号码
        System.out.println("公布中奖号码红球:");
        sort(sysRedBall);
        System.out.println(Arrays.toString(sysRedBall));
        System.out.println("公布中奖号码蓝球:");
        System.out.println(sysBlueBall);

        //用户选择号码
        System.out.println("你的红球:");
        sort(userRedBall);
        System.out.println(Arrays.toString(userRedBall));
        System.out.println("你的蓝球:");
        System.out.println(userBlueBall);

        System.out.println("适度消费");
    }

    public static void sort(int[] ball){
        for (int i = 0; i < ball.length - 1; i++) {
            for (int j = 0; j < ball.length - 1 - i; j++) {
                if (ball[j]>ball[j+1]){
                    ball[j] = ball[j]+ball[j+1];
                    ball[j+1] = ball[j]-ball[j+1];
                    ball[j] = ball[j]-ball[j+1];
                }
            }
        }
    }

    //用于在指定数列中,随机生成多个不重复的数
    public static void computerSelection(int[] redBall,int[] userRedBall){

        Random r = new Random();
        int index = -1;
        for (int i = 0; i < userRedBall.length; i++) {
          index = r.nextInt(redBall.length-i);
            userRedBall[i] = redBall[index];

          int temp = redBall[index];
            redBall[index] = redBall[redBall.length-1-i];
            redBall[redBall.length-1-i] = temp;

        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韩信001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值