猜拳游戲-學(xué)Java從游戲開始2

實踐是最好的老師柠新,它能教會我們許多光“看”書而看不到的知識求摇。

內(nèi)容:

“石頭射沟、剪刀、布”是一種常見的猜拳游戲与境。游戲中玩家與電腦相互出拳验夯,在三次PK中以獲勝次數(shù)多者為最后贏家。游戲規(guī)則:出拳相同為平手摔刁,否則“石頭”勝“剪刀”挥转、“剪刀”勝“布”、“布”勝“石頭”共屈。游戲時绑谣,先由電腦隨機(jī)出拳,然后玩家可選擇出拳拗引,玩家不可預(yù)知電腦的出拳借宵。

知識點:

輸入輸出、隨機(jī)數(shù)矾削、數(shù)組壤玫、循環(huán)結(jié)構(gòu)豁护、多分支結(jié)構(gòu)

關(guān)于隨機(jī)數(shù)請參考《猜數(shù)字游戲-學(xué)Java從游戲開始1》,其余都是基礎(chǔ)知識欲间。

難點與思路:

1择镇、如何表示“石頭、剪刀括改、布”腻豌?
游戲中常常出現(xiàn)一些“道具”,在編程時對于比較小的游戲一般簡單的用“1嘱能、2吝梅、3……”等數(shù)字來代表。如本游戲可用1=石頭惹骂、2=剪刀苏携、3=布。
為了表示數(shù)字與“道具”的對應(yīng)關(guān)系对粪,這里可定義一個字符串?dāng)?shù)組右冻,如:
String[] fingers= {"石頭","剪刀","布"};
根據(jù)道具對應(yīng)的數(shù)字就可得到其名稱,格式是fingers[i-1]著拭。如“剪刀”可用fingers[2-1]表示纱扭。

當(dāng)然可以用枚舉類型來表示 “石頭、剪刀儡遮、布”乳蛾,但我認(rèn)為這里還不需要它。

2鄙币、勝負(fù)如何判定肃叶?
由于玩家與電腦分別有三種出拳選擇,一一進(jìn)行判斷有3*3=9種不同十嘿,所以采用分支來逐個進(jìn)行判斷比較復(fù)雜因惭。一種比較簡單的做法是采用類似比賽對陣表的方法,將兩者的不同出拳及勝負(fù)情況用一張表表示绩衷,存儲在一個二維數(shù)組中即可蹦魔。如下圖所示:


玩家/電腦勝負(fù)表.png

這里“勝、負(fù)唇聘、平”分別用1版姑、-1和0表示。數(shù)組定義為:
int[][] win_los= {{0,1,-1},{-1,0,1},{1,-1,0}};
判定玩家取勝與否只須判斷win_los[玩家出拳序號-1][電腦出拳序號-1]是1迟郎、-1或0即可剥险。

程序流程圖:

請讀者自己思考繪制。

程序代碼:

import java.util.Scanner;
/**
 * 石頭宪肖、剪刀表制、布游戲
 * @author LCS
 *
 */
public class FingerGuessingGame {

    public static void main(String[] args) {
        //1=石頭,2=剪刀,3=布
        Scanner key=new Scanner(System.in);
        int c;//電腦的出拳
        int p;//玩家的出拳
        int ci=0,pi=0;//分別是電腦及玩家勝利的次數(shù)
        int[][] win_los= {{0,1,-1},{-1,0,1},{1,-1,0}};
        String[] fingers= {"石頭","剪刀","布"};
        System.out.println("歡迎來到《石頭健爬、剪刀、布》游戲");
        System.out.println("====================");
        //開始游戲
        for(int i=1;i<=3;i++) {
            c=(int)(Math.random()*3+1);
            System.out.println("請輸入你的第"+i+"次出拳【1=石頭,2=剪刀,3=布】:");
            p=key.nextInt();
            if(p<=0 || p>3) continue;
            System.out.println("電腦出拳:"+fingers[c-1]);
            System.out.println("你出拳:"+fingers[p-1]);
            switch(win_los[p-1][c-1]) {
            case -1:
                System.out.println("電腦贏么介,你輸了娜遵!");
                ci++;
                break;
            case 0:
                System.out.println("電腦和你打成平局!");
                break;
            case 1:
                System.out.println("電腦輸壤短,你贏了设拟!");
                pi++;
                break;              
            }
        }
        //游戲結(jié)束
        System.out.println("=========您的成績========");
        System.out.println("本次游戲你一共贏了"+pi+"次");
        if(pi>ci) {
            System.out.println("恭喜你成為贏家!");
        }else if(pi==ci) {
            System.out.println("你與電腦打成平手久脯!");
        }else {
            System.out.println("非常遺憾你敗給了電腦纳胧!歡迎下次再來。");
        }
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帘撰,一起剝皮案震驚了整個濱河市跑慕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌摧找,老刑警劉巖核行,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蹬耘,居然都是意外死亡芝雪,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進(jìn)店門婆赠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绵脯,“玉大人,你說我怎么就攤上這事休里。” “怎么了赃承?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵妙黍,是天一觀的道長。 經(jīng)常有香客問我瞧剖,道長拭嫁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任抓于,我火速辦了婚禮做粤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘捉撮。我一直安慰自己怕品,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布巾遭。 她就那樣靜靜地躺著肉康,像睡著了一般闯估。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吼和,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天涨薪,我揣著相機(jī)與錄音,去河邊找鬼炫乓。 笑死刚夺,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的末捣。 我是一名探鬼主播侠姑,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼塔粒!你這毒婦竟也來了结借?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤卒茬,失蹤者是張志新(化名)和其女友劉穎船老,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體圃酵,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡柳畔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了郭赐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片薪韩。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖捌锭,靈堂內(nèi)的尸體忽然破棺而出俘陷,到底是詐尸還是另有隱情,我是刑警寧澤观谦,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布拉盾,位于F島的核電站,受9級特大地震影響豁状,放射性物質(zhì)發(fā)生泄漏捉偏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一泻红、第九天 我趴在偏房一處隱蔽的房頂上張望夭禽。 院中可真熱鬧,春花似錦谊路、人聲如沸讹躯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蜀撑。三九已至挤巡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間酷麦,已是汗流浹背矿卑。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留沃饶,地道東北人母廷。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像糊肤,于是被迫代替她去往敵國和親琴昆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,870評論 2 361

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