/**
模擬雙色球綜合案列
1、用戶選擇是機選還是手選號碼
2、接收用戶選號(6紅,1藍)
3、生成系統(tǒng)號碼(6紅,1藍)
4、比較系統(tǒng)號碼和用戶號碼,記錄個數(shù)
5、驗證是否中獎
6、系統(tǒng)號碼排序
7、公布結(jié)果
*/
import java.util.Scanner;
import java.util.Random;
import java.util.Arrays;
public class Test9 {
public static void main(String[] args) {
//定義相關(guān)變量
int[] userRedBall = new int[6];//用戶選擇的紅球號碼6個
int[] sysRedBall = new int[6];//系統(tǒng)生成的紅球號碼6個
int userBlueBall = 0; //用戶選擇的藍球號碼
int sysBlueBall = 0; //系統(tǒng)生成的藍球號碼
int redCount = 0; //記錄用戶選擇正確的紅球數(shù)
int blueCount = 0; //記錄用戶選擇正確的藍球數(shù)
int[] redBall = new int[33];//用于存儲1-33的紅球號碼,系統(tǒng)生成的
//需要隨機生成6個在1-33之間不重復的數(shù)(算法)
for(int i=0;i<redBall.length;i++){
redBall[i]=i+1;
}
//游戲開始,系統(tǒng)提示
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個紅球號碼(1-33)");
for(int i=0;i<userRedBall.length;i++){
userRedBall[i] = input.nextInt();
}
System.out.println("請選擇1個藍球號碼(1-16)");
userBlueBall = input.nextInt();
flag=false;
break;
default :
System.out.println("請問是機選還是手選(1:機選,2:手選)");
break;
}
}
//系統(tǒng)隨機生成號碼
//紅球
computerSelection(redBall,sysRedBall);
//藍球
sysBlueBall = r.nextInt(16)+1;
//統(tǒng)計結(jié)果:
//統(tǒng)計紅球相同個數(shù):
for(int i=0;i<userRedBall.length;i++){
for(int j=0;j<sysRedBall.length-redCount;j++){
if(userRedBall[i]==sysRedBall[j]){
int tmp=sysRedBall[i];
sysRedBall[i]=sysRedBall[sysRedBall.length-1-redCount];
sysRedBall[sysRedBall.length-1-redCount]=tmp;
redCount++;
break;
}
}
}
//統(tǒng)計藍球
if(userBlueBall==sysBlueBall){
blueCount=1;
}
//驗證是否中獎
if(blueCount==0 && redCount<=3){
System.out.println("尚未中獎");
}else if(blueCount==1 && redCount<3){
System.out.println("中六等獎,5塊錢");
}else if((blueCount==1 && redCount==3) || (blueCount==0 && redCount==4)){
System.out.println("中五等獎,10塊錢");
}else if((blueCount==1 && redCount==4) || (blueCount==0 && redCount==5)){
System.out.println("中四等獎,200塊錢");
}else if(blueCount==1 && redCount==5){
System.out.println("中三等獎,3000塊錢");
}else if(blueCount==0 && redCount==6){
System.out.println("中二等獎,150W");
}else if(blueCount==1 && redCount==6){
System.out.println("中一等獎,500W");
}else{
System.out.println("系統(tǒng)有誤,中獎無效");
}
//公布系統(tǒng)中獎號碼
System.out.println("本期中獎號碼為: ");
sort(sysRedBall);
System.out.println(Arrays.toString(sysRedBall));
System.out.println("本期中獎藍球號碼為: "+sysBlueBall);
//公布用戶號碼
System.out.println("您選擇的紅球號碼為: ");
sort(userRedBall);
System.out.println(Arrays.toString(userRedBall));
System.out.println("您選擇的藍球號碼為: "+userBlueBall);
System.out.println("買雙色球,造福你我他,謝謝參與");
}
//對生成的數(shù)組排序
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];
}
}
}
}
//用戶在指定數(shù)列中,隨機生成多個不重復的數(shù),組成數(shù)組
原數(shù)組redBall ,待生成的目標數(shù)組userRedBall,長度都是已知的
public static void computerSelection(int[] redBall,int[] userRedBall){
Random r = new Random();
int index = -1;
for(int i=0;i<userRedBall.length;i++){ //循環(huán)6次,取出紅球6個,這樣效率最高因為只循環(huán)了6次
index=r.nextInt(redBall.length-i);//隨機產(chǎn)生一個數(shù),范圍是0到redBall.length-i,不包含redBall.length-i
userRedBall[i] = redBall[index];
int tmp = redBall[index];
redBall[index]=redBall[redBall.length-1-i]; //取第一個隨機數(shù)后就將此數(shù)放在數(shù)組的最后一個位置,第二次取得時候就從倒數(shù)第二個到第一個之間的
redBall[redBall.length-1-i]=tmp;
}
}
}
雙色球案例
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 在職場中存在著各式各樣的人,每個人所遇到的狀況都不一樣,但是麻煩總是少不了的,有些人喜歡埋怨,一定要把事說出來才行...