使用java實現了模擬雙色球/**1.接受用戶輸入,6紅,1藍2.隨機生成 6紅 1藍3.比較系統的號碼和用戶號碼,記錄個數3.驗證是否中獎5.系統號碼排序6.公布結果*/import java.util.Scanner;import java.util.Random;public class Test9{ public static void main(String[] args){ int[] userRedBall = new int[6]; int userBlueBall = 0; int[] sysRedBall = new int[6]; int sysBlueBall =0; int redCount = 0; int blueCount = 0; int[] redBall = new int[33]; int[] blueBall = new int[13]; //填寫紅球備選區數字 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://機選 int index = -1;//下標 System.out.println("機選的紅球是:/t/t藍球"); 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-i-1]; redBall[redBall.length-i-1] = temp; //redBall[index] = redBall[index]+redBall[redBall.length-i-1];//將隨機抽到的數調整到當前數組的最后一位 //redBall[redBall.length-i-1] = redBall[index]-redBall[redBall.length-i-1]; //redBall[index] = redBall[index]-redBall[redBall.length-i-1]; System.out.print(userRedBall[i]+" "); } userBlueBall = r.nextInt(13)+1;//機選籃球 System.out.println("/t"+userBlueBall); //for(int i=0;i<blueBall.length;i++) flag = false; break; case 2://手選 System.out.println("請選擇6個紅球號碼(1~33):"); for(int i=0;i<userRedBall.length;i++){ userRedBall[i] = input.nextInt(); } System.out.println("請選擇1個藍球號碼(1~13):"); userBlueBall = input.nextInt(); flag = false; break; default: System.out.println("請問是選擇1:機選 2:手選"); } } //系統隨機產生的號碼 int index = -1;//下標 for(int i=0;i<sysRedBall.length;i++){ index = r.nextInt(redBall.length-i);//將隨機到的數字賦值給數組下標 sysRedBall[i] = redBall[index];//將紅球中的隨機數賦值給用戶紅球中 int temp = redBall[index]; redBall[index] = redBall[redBall.length-i-1]; redBall[redBall.length-i-1] = temp; //redBall[index] = redBall[index]+redBall[redBall.length-i-1];//將隨機抽到的數調整到當前數組的最后一位 //redBall[redBall.length-i-1] = redBall[index]-redBall[redBall.length-i-1]; //redBall[index] = redBall[index]-redBall[redBall.length-i-1]; } sysBlueBall = r.nextInt(13)+1; //統計結果,判斷是兩者紅球個數redcount 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-redCount-1]; sysRedBall[sysRedBall.length-redCount-1] = temp; //sysRedBall[j] = sysRedBall[j] +sysRedBall[sysRedBall.length-redCount-1]; //sysRedBall[sysRedBall.length-redCount-1] = sysRedBall[j] -sysRedBall[sysRedBall.length-redCount-1]; //sysRedBall[j] = sysRedBall[j] -sysRedBall[sysRedBall.length-redCount-1]; redCount++; break; } } } if(userBlueBall == sysBlueBall){ blueCount = 1; } //排序本期中獎號碼 for(int i=0;i<sysRedBall.length-1;i++){ for(int j=0;j<sysRedBall.length-1-i;j++){ if(sysRedBall[j]>sysRedBall[j+1]){ int temp = sysRedBall[j]; sysRedBall[j] = sysRedBall[j+1]; sysRedBall[j+1] = temp; //sysRedBall[j] = sysRedBall[j] +sysRedBall[j+1]; //sysRedBall[j+1] = sysRedBall[j]-sysRedBall[j+1]; //sysRedBall[j] = sysRedBall[j] -sysRedBall[j+1]; } } } //打印本期中獎號碼 System.out.println("本期中獎號碼為:/t藍球"); for(int i=0;i<sysRedBall.length;i++){ System.out.print(sysRedBall[i]+" "); } System.out.println("/t"+sysBlueBall); //判斷是否中獎 System.out.println("******************************"); if(blueCount==0 && redCount<=3 ){ System.out.println("/t 沒中獎!"); }else if((blueCount==1)&&redCount<3){ System.out.print("/t 六等獎:5塊!"); }else if((redCount==3 &&blueCount==1)||(redCount==4 &&blueCount==0)){ System.out.print("/t 五等獎:10塊!"); }else if((redCount==4 &&blueCount==1)||(redCount==5 &&blueCount==0)){ System.out.print("/t 四等獎:200塊!"); }else if(redCount==5 &&blueCount==1){ System.out.print("/t 三等獎:3000塊!"); }else if(redCount==6 &&blueCount==0){ System.out.print("/t 二等獎:150萬!"); }else if(redCount==6 &&blueCount==1){ System.out.print("/t 一等獎:500萬!"); }else System.out.print("/t 系統錯誤"); System.out.println("******************************"); }}
新聞熱點
疑難解答