Java開發(fā)實(shí)現(xiàn)猜拳游戲
本文實(shí)例為大家分享了Java實(shí)現(xiàn)猜拳游戲的具體代碼,供大家參考,具體內(nèi)容如下
一、問題簡介
通過控制臺方式實(shí)現(xiàn)一個人機(jī)對戰(zhàn)的猜拳游戲,用戶通過輸 入(1.剪刀2.石頭3.布),機(jī)器隨機(jī)生成(1.剪刀2.石頭3.布),勝者積分,3局以后通過積分的多少判定勝負(fù)。
二、代碼邏輯簡介
1、向用戶解釋比賽規(guī)則;
2、接收用戶輸入的內(nèi)容并判斷用戶輸入的內(nèi)容是否符合要求,如果不符合,重新輸入。
3、電腦自動生成數(shù)字;
4、根據(jù)電腦和用戶輸入的內(nèi)容,進(jìn)行比較二者的勝負(fù)
5、讓用戶連續(xù)進(jìn)行多場比賽,直到一方達(dá)到3分,比賽結(jié)束。
三、知識點(diǎn)
1、掌握J(rèn)ava的Scanner、while循環(huán)、switch、if 判斷語句,能判別用戶輸入的類型是否為int類型。
2、部分封裝內(nèi)容。
3、能熟練梳理游戲的邏輯。
四、代碼
package homework; import java.util.Random; import java.util.Scanner; class Demo3 { public static void main(String[] args) { game g=new game(); g.caiquan(); } } //確定用戶和電腦猜拳內(nèi)容 class game{ String people; String computer; int count1; int count2; public void caiquan() { //解釋比賽規(guī)則 System.out.println("猜拳游戲\n比賽規(guī)則:用戶通過輸入數(shù)字(1-剪刀,2—石頭,3-布)與電腦進(jìn)行對戰(zhàn),當(dāng)某一方的分?jǐn)?shù)達(dá)到率先達(dá)到10分,該方勝利!"); while(true) { System.out.println("請輸入數(shù)字:"); int a; //判斷用戶輸入的內(nèi)容是否 while (true) { Scanner input = new Scanner(System.in); //正確接收用戶輸入的內(nèi)容 if (input.hasNextInt()) { int b=input.nextInt(); if (b>0&&b<4) { a=b; break ; }else { System.out.println("輸入的數(shù)字不在規(guī)定的范圍,請重新輸入"); b=input.nextInt(); } }else { System.out.println("輸入的不是數(shù)字錯誤,請重新輸入"); } } switch (a) { case 1: people = "剪刀"; break; case 2: people ="石頭"; break; case 3: people ="布"; break; } //電腦模擬的內(nèi)容 Random r=new Random(); int b = r.nextInt(3)+1; switch (b) { case 1: computer = "剪刀"; break; case 2: computer ="石頭"; break; case 3: computer ="布"; break; } //比較兩者勝負(fù) if(a==b) { System.out.println("本場比賽平局!因?yàn)槟爿斎氲氖?+people+",電腦輸入的是"+computer+"。用戶積分為:"+count1+"電腦積分為:"+count2); }else if(a==1&&b==2||a==2&&b==3||a==3&&b==1) { count1++; System.out.println("恭喜你,你獲勝!因?yàn)槟爿斎氲氖?+people+",電腦輸入的是"+computer+"。"+count1); }else { count2++; System.out.println("很遺憾,本局電腦獲勝!因?yàn)槟爿斎氲氖?+people+",電腦輸入的是"+computer+"。用戶積分為:"+count1+",電腦積分為:"+count2); } //比較二者的積分,確定最終的勝利者 if (count1==3||count2==3) { System.out.println("比賽結(jié)束"); if (count1>count2) { System.out.println("恭喜你,獲得最終勝利!\n你獲得"+count1+"分,電腦獲得"+count2+"分。"); }else { System.out.println("很遺憾,電腦獲得最終的勝利。\n你獲得"+count1+"分,電腦獲得"+count2+"分。"); } break; } } } }
更多有趣的經(jīng)典小游戲?qū)崿F(xiàn)專題,分享給大家:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java 實(shí)戰(zhàn)項(xiàng)目錘煉之在線購書商城系統(tǒng)的實(shí)現(xiàn)流程
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+jsp+mysql+servlet+ajax實(shí)現(xiàn)一個在線購書商城系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平2021-11-11基于IDEA 的遠(yuǎn)程調(diào)試 Weblogic的操作過程
這篇文章主要介紹了基于IDEA 的遠(yuǎn)程調(diào)試 Weblogic的操作過程,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09Spring Security 自動踢掉前一個登錄用戶的實(shí)現(xiàn)代碼
這篇文章主要介紹了Spring Security 自動踢掉前一個登錄用戶的實(shí)現(xiàn)代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05SpringBoot的@Value給靜態(tài)變量注入application.properties屬性值
這篇文章主要介紹了SpringBoot的@Value給靜態(tài)變量注入application.properties屬性值,Spring是一個開源的框架,主要是用來簡化開發(fā)流程,通過IOC,依賴注入(DI)和面向接口實(shí)現(xiàn)松耦合,需要的朋友可以參考下2023-05-05