1.双色球小游戏 //import java.util.Arrays; import java.util.Random; import java.util.Scanner; /*游戏规则: 投注号码由6个红色球(1-33)和1个蓝色球(1-16),红球不能重复 一等奖(中奖金额30元):猜中6个红球一个蓝球(6+1) 二等奖(中奖金额60元):猜中6个红球(6+0) 三等奖(中奖金额600元):猜中5个红球1个蓝球(5+1) 四等奖(中奖金额9000元):猜中5个红球(5+0)或者猜中4个红球1个蓝球(4+1) 五等奖(中奖金额500万元):猜中4个红球(4+0)或者猜中3个红球1个蓝球(3+1) 六等奖(中奖金额1000万元):猜中红球个数不大于2且猜中一个蓝球(2+1,1+1,0+1)*/ //创建账户充值金额,2游戏币一注,当充值金额大于2块钱即可开始游戏,否则继续充值 //1.随机出七个不重复的号码,前6个范围为1-33,后1个范围为1-16. //2.客户输入6个不重复红球号码,输入一个篮球号码 //3.将输入的号码与奖池号码对比 //4.打印奖池号码,打印输入号码,打印中奖等级 //5.打印中奖金额,添加到账户余额,开始下一次游戏 public class java1 { public static void main(String[] args) { //初始充值金额 Scanner sc=new Scanner(System.in); System.out.println("账户余额为:0币 请充值!"); System.out.print("输入充值金额:"); int YE=sc.nextInt();//账户余额 System.out.println("账户余额:"+YE+"币"); //循环游戏 while(true) { int count=1; if (YE >= 2) { System.out.println("*************第"+count+"期*************"); //1.调用get1随机奖池号码 int[] arr = get1(); //2.调用get2用户输入号码 int arr1[] = get2(); //一个号码2块钱,每次用户游戏就减一次账户余额1*号码个数 YE=YE-2; //3.打印奖池号码 System.out.print("奖池号码为:"); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } //4.打印用户输入号码 System.out.print("用户输入号码为:"); for (int i = 0; i < arr1.length; i++) { System.out.print(arr1[i] + " "); } System.out.println(" ");//换行 //5.调用get4,将输入号码与奖池号码对比,判断中奖级别 int JX = get4(arr, arr1); //6.把中奖号码放入一个数组 int[] arr2 = get5(arr, arr1); //7.打印中奖号码及结果 if (JX != 0) { //打印红色中奖号码 System.out.print("红球中奖号码为:"); for (int i = 0; i < arr.length - 1; i++) { if (arr2[i] != 0) { System.out.print(arr2[i] + " ,"); } else { System.out.print("无" + ", "); } } //打印篮球中奖号码 System.out.println(); System.out.print("蓝球中奖号码为:"); if (arr2[arr.length - 1] != 0) { System.out.println(arr2[arr.length - 1]); } else { System.out.print("无"); } //打印中奖等级 System.out.println("/"); System.out.println("获奖等级为:" + JX + "等奖"); } else { System.out.println("未中奖"); } //8.调用方法get6:判定中奖金额,重新计算账户余额 int zjje=get6(JX); System.out.println("中奖金额为:"+zjje+"币"); YE=YE+zjje; System.out.println("账户余额为:"+YE+"币"); }else{ System.out.println("余额:"+YE+"币"+" 余额不足请充值!!!"); System.out.print("请输入充值游戏币:"); YE=YE+sc.nextInt(); } } } //---------------------------------------------------------- //方法1:随机奖池号码 public static int[] get1() { Random r = new Random(); int arr[] = new int[7]; for (int i = 0; i < arr.length - 1; ) { //循环随机六位红球 int num = r.nextInt(33)+1; boolean flag = get1_1(arr, num);//调用方法3判断数组中是否存在与num重复的号码 if (!flag) {//如果不存在重复,则num存入arr[i] arr[i] = num; i++; } } int Lnum = r.nextInt(16)+1;//随机篮球 arr[arr.length - 1] = Lnum; //Arrays.sort(arr); //将数组从小到大排序 arr=get1_1(arr); return arr; } //方法1-1:将奖池号码从小到大排列 public static int[] get1_1(int[] arr) { int temp = 0; for (int j = 0; j < arr.length - 2; j++) {//交换5次 for (int i = 0; i < arr.length - 2; i++) {//比对5次 if (arr[i] > arr[i + 1]) { temp = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = temp; } } } return arr; } //---------------------------------------------------------- //方法2.用户输入号码 public static int[] get2() { Scanner sc = new Scanner(System.in); int[] arr1 = new int[7]; for (int i = 0; i < arr1.length - 1; ) {//用户输入前六位红球号码 System.out.print("请输入第" + (i + 1) + "个号码(1-33):"); int num = sc.nextInt(); if (num >= 1 && num <= 33) {//前六个号码,如果在1-33之间就输入成功,如果不是则输入错误重新输入 if (!get2_1(arr1, num)) {//如果不存在重复就存入数组 arr1[i] = num; i++; } else { System.out.println("号码输入重复请重新输入(1-33)"); } } else { System.out.println("号码输入错误请重新输入(1-33)"); } } System.out.print("请输入第" + (arr1.length) + "个号码(1-16):"); for (int i = 0; i < 1; ) {//用户输入篮球号码 int num = sc.nextInt(); if (num >= 1 && num <= 16) { arr1[arr1.length - 1] = num; i++; } else { System.out.println("号码输入错误请重新输入(1-16)"); } } return arr1;//返回数组 } //方法2_1:判断客户输入的红球是否有重复 public static boolean get2_1(int arr[], int num) { for (int i = 0; i < arr.length - 1; i++) { if (arr[i] == num) { return true; } } return false; } //---------------------------------------------------------- //方法1-1:判断奖池数组中有没有重复号码 public static boolean get1_1(int arr[], int num) { boolean flag = false; for (int i = 0; i < arr.length - 1; i++) { if (arr[i] == num) { return true; } } return false; } //---------------------------------------------------------- //方法4:输入号码与奖池号码比对 public static int get4(int[] arr, int[] arr1) { int JX = 0;//定义几等奖 int redCounter = 0;//记录红球中奖个数 int bluCounter = 0;//记录篮球中奖个数 for (int i = 0; i < arr.length - 1; i++) {//循环判断红球中奖个数 int num = arr1[i]; if (get2_1(arr, num)) {//调用get2_1判断红球中奖个数 redCounter++; } } if (arr[arr.length - 1] == arr1[arr1.length - 1]) {//循环判断篮球中奖个数 bluCounter++; } if (bluCounter == 1 && (redCounter == 1 || redCounter == 0)) {//根据中奖个数判断最终得奖级别 JX = 6; } if (bluCounter == 1 && (redCounter == 2 || redCounter == 3)) { JX = 5; } if ((bluCounter == 1 && redCounter == 4) || (bluCounter == 0 && (redCounter == 4 || redCounter == 5))) { JX = 4; } if (bluCounter == 1 && redCounter == 5) { JX = 3; } if (bluCounter == 0 && redCounter == 6) { JX = 2; } if (bluCounter == 1 && redCounter == 6) { JX = 1; } return JX;//将中奖级别返回给get4 } //---------------------------------------------------------- //方法5;记录中奖号码 /* public static int[] get5(int[] arr, int[] arr1) {//arr奖池,arr1用户号码 int []arr2 = new int[arr.length];//定义中奖号码数组 int redCounter = 0;//记录红球中奖个数 int bluCounter = 0;//记录篮球中奖个数 for (int i = 0; i < arr.length - 1; i++) {//循环判断红球中奖个数 int num = arr1[i]; if (get2_1(arr, num)) {//调用get2_1判断红球中奖个数 arr2[i] = arr1[i]; redCounter++; }else{ arr[i]=0; } } if (arr[arr.length - 1] == arr1[arr1.length - 1]) {//循环判断篮球中奖个数 arr2[arr.length - 1] = arr1[arr.length - 1]; bluCounter++; } return arr2; }*/ public static int [] get5(int []arr,int []arr1) { int arr2[]=new int[arr.length]; for (int i = 0; i < arr.length-1; i++) {//循环6次 for (int j = 0; j < arr.length-1; j++) { if (arr[i]==arr1[j]){//拿第i个奖池号码依次跟所有客户输入号码比对,如果相等直接存入新数组arr2 arr2[i]=arr[i]; break;//循环结束 } } } if (arr[arr.length-1]==arr1[arr1.length-1]) { arr2[arr.length-1]=arr[arr.length-1]; } return arr2; } //---------------------------------------------------------- public static int get6(int JX) { int zjje=0;//定义一个中奖金额 if(JX==1){ zjje=10000000; } if(JX==2){ zjje=5000000; } if(JX==3){ zjje=9000; } if(JX==4){ zjje=600; } if(JX==5){ zjje=60; } if(JX==6){ zjje=30; } return zjje; } }
java学习第8天,双色球小游戏
最新推荐文章于 2024-08-16 23:08:28 发布