雙色球案例

/**
    模擬雙色球綜合案列
    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ù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,837評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,196評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 175,688評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,654評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,456評論 6 406
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,955評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,044評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,195評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,725評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,608評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,802評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,318評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,048評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,422評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,673評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,424評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,762評論 2 372

推薦閱讀更多精彩內(nèi)容

  • 雙色球案例 /* 雙色球案例 紅球和 藍球 藍球 1個 1~16 之間 紅球 6個 1~33 ...
    冰天雪地_6409閱讀 311評論 0 0
  • 在職場中存在著各式各樣的人,每個人所遇到的狀況都不一樣,但是麻煩總是少不了的,有些人喜歡埋怨,一定要把事說出來才行...
    暮時說勢閱讀 337評論 0 0
  • 萬水千山總是情, 問你喝酒行不行。 天若有情天亦老, 喝酒從不問多少。 李白斗酒詩百篇, 端起這杯干不干, 路見不...
    zdcxcz閱讀 429評論 0 1
  • 曾經(jīng)的我對大學這個美好的存在滿懷憧憬與期待,然而當自己真正進入大學的時候便發(fā)現(xiàn),其實它與自己所幻想的樣子還有...
    無名小卒223閱讀 724評論 2 40
  • 第七章 天賦與本能:行為心理學家眼中的人體潛能 行為主義不同意有“天賦”或“本能”的存在。 行為主義認為人生來就能...
    傾華丶閱讀 772評論 0 4