Java人機(jī)猜拳實(shí)現(xiàn)的思路及方法實(shí)例
創(chuàng)建四個(gè)類:
機(jī)器人類
玩家類
游戲類
運(yùn)行類
一、機(jī)器人類:
1.首先創(chuàng)建兩個(gè)成員變量,分別作為機(jī)器人的名字與積分:
String name; int jifen;
2.然后創(chuàng)建方法“pcname”用于定義機(jī)器人的名字:
寫個(gè)switch循環(huán)來(lái)判斷如果你按1234的話誰(shuí)來(lái)與你對(duì)戰(zhàn)
3.然后再創(chuàng)建一個(gè)方法“chuquan”來(lái)定義機(jī)器人出什么,石頭還是剪刀。。:
所以寫個(gè)1-3的隨機(jī)數(shù)
int suiji=((int)(Math.random()*3)+1);
4.最后switch判斷,1的話是石頭,2剪刀,3布
機(jī)器人完整代碼:
import java.util.Scanner; public class pc { String name; int jifen; Scanner input=new Scanner(System.in); public void pcname(){ int pcjuese=input.nextInt(); switch (pcjuese) { case 1: name="張飛"; System.out.println("你選擇了"+name+"對(duì)戰(zhàn)"); break; case 2: name="趙云"; System.out.println("你選擇了"+name+"對(duì)戰(zhàn)"); break; case 3: name="貂蟬"; System.out.println("你選擇了"+name+"對(duì)戰(zhàn)"); break; default: System.out.println("還沒(méi)這個(gè)人"); } } public int chuquan(){ int suiji=((int)(Math.random()*3)+1); switch (suiji){ case 1: System.out.println(name+"出拳:石頭"); break; case 2: System.out.println(name+"出拳:剪刀"); break; case 3: System.out.println(name+"出拳:布"); break; default: } return suiji; } }
二、玩家類:
1.和機(jī)器人一樣,定義兩個(gè)成員變量,用于作為名字和積分:
String name="1"; int jifen=0;
2.創(chuàng)建一個(gè)“renname”方法,用于定義玩家的昵稱
3.創(chuàng)建一個(gè)”chuquan“方法,用于定義玩家出拳
然后switch進(jìn)行判斷,按1出石頭,按2出剪刀,按3出布
玩家完整代碼:
import java.util.Scanner; public class ren { String name="1"; int jifen=0; Scanner input=new Scanner(System.in); public void renname(){ System.out.println("起一個(gè)昵稱吧:"); name=input.next(); System.out.println("你的昵稱為:"+name); } public int chuquan(){ System.out.println("出拳:1.石頭 2.剪刀 3.布"); int show=input.nextInt(); switch (show){ case 1: System.out.println(name+" 出石頭"); break; case 2: System.out.println(name+" 出剪刀"); break; case 3: System.out.println(name+" 出布"); break; default : System.out.println("你準(zhǔn)備出個(gè)大炮呢?"); } return show; } }
三、游戲類
1.定義兩個(gè)成員變量和new兩個(gè)對(duì)象:
int count; //進(jìn)行了幾局游戲 int pingju; //平局場(chǎng)次 ren Ren =new ren(); pc computer =new pc();
2.創(chuàng)建“game”方法,用來(lái)調(diào)用機(jī)器人類和玩家類,以及實(shí)現(xiàn)游戲功能
3.首先調(diào)用Ren.name()來(lái)用于讓玩家創(chuàng)建昵稱
3.1.然后調(diào)用computer.name()來(lái)用于讓玩家選擇和誰(shuí)對(duì)戰(zhàn)
4.一切ok,開(kāi)始進(jìn)行功能實(shí)現(xiàn):
首先創(chuàng)建兩個(gè)變量,一個(gè)是機(jī)器人出拳,一個(gè)是玩家出拳
int pcquan; //pc出拳 int personquan; //人出拳
y/n開(kāi)始游戲和退出游戲
開(kāi)始進(jìn)行游戲功能實(shí)現(xiàn)編寫
5.循環(huán)的時(shí)候把機(jī)器人和玩家出拳的方法賦值給上面兩個(gè)定義出拳的變量
6.功能ok后創(chuàng)建一個(gè)方法,用于定義計(jì)分板,這個(gè)就很簡(jiǎn)單了,直接附上游戲類完整代碼:
import java.util.Scanner; public class w { int count; //進(jìn)行了幾局游戲 int pingju; //平局場(chǎng)次 ren Ren =new ren(); pc computer =new pc(); Scanner input=new Scanner(System.in); public void game(){ System.out.println("規(guī)則:1.石頭 2.剪刀 3.布"); Ren.renname(); System.out.print("請(qǐng)選擇對(duì)方角色(1.張飛 2.趙云 3.貂蟬): "); // 選擇對(duì)方角色 computer.pcname(); System.out.println("要開(kāi)始嘛?(y/n)"); String yn=input.next(); int pcquan; //pc出拳 int personquan; //人出拳 while (yn.equalsIgnoreCase("y")){ personquan=Ren.chuquan(); //人出拳 pcquan=computer.chuquan(); //pc出拳 if((pcquan==1&personquan==1)|(pcquan==2&personquan==2)|(pcquan==3&personquan==3)){ System.out.println("平局"); pingju++; }else if((pcquan==1&personquan==3)|(pcquan==2&personquan==1)|(pcquan==3&personquan==2)){ System.out.println(Ren.name+"贏了"); computer.jifen++; }else { System.out.println(computer.name+"贏了"); Ren.jifen++; } count++; //表示進(jìn)行了一局游戲 System.out.println("開(kāi)始下一輪嘛?(y/n)"); yn=input.next(); if (yn.equalsIgnoreCase("n")){ System.out.println("游戲結(jié)束"); result(); } } } //比賽結(jié)果 public void result(){ System.out.println("-------------------------------"); System.out.println(Ren.name+" VS "+computer.name); System.out.println("對(duì)戰(zhàn)次數(shù):"+count); System.out.println("平局"+pingju+"場(chǎng)"); System.out.println(Ren.name+"贏了"+Ren.jifen+"場(chǎng)"); System.out.println(computer.name+"贏了"+computer.jifen+"場(chǎng)"); if(Ren.jifen> computer.jifen){ System.out.println(Ren.name+"贏了"); }else if (computer.jifen> Ren.jifen){ System.out.println(computer.name+"贏了"); }else { System.out.println("平局"); } } }
三、運(yùn)行類
這個(gè)就不多說(shuō)了,直接上代碼
public class test { public static void main(String[] args) { w game=new w(); ren ren=new ren(); game.game(); //game.result(); } }
到此這篇關(guān)于Java人機(jī)猜拳實(shí)現(xiàn)思路及方法的文章就介紹到這了,更多相關(guān)Java人機(jī)猜拳思路及方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java實(shí)現(xiàn)簡(jiǎn)單猜拳游戲
- java利用多線程和Socket實(shí)現(xiàn)猜拳游戲
- Java開(kāi)發(fā)實(shí)現(xiàn)猜拳游戲
- Java開(kāi)發(fā)實(shí)現(xiàn)人機(jī)猜拳游戲
- Java實(shí)現(xiàn)人機(jī)猜拳游戲
- java項(xiàng)目實(shí)現(xiàn)猜拳小游戲
- java實(shí)現(xiàn)猜拳小游戲
- Java控制臺(tái)實(shí)現(xiàn)猜拳游戲小游戲
- Java入門案列之猜拳小游戲
- Java實(shí)現(xiàn)人機(jī)猜拳小游戲
- java實(shí)現(xiàn)數(shù)字猜拳小游戲
- java實(shí)現(xiàn)猜拳游戲
- 基于java實(shí)現(xiàn)人機(jī)猜拳游戲
相關(guān)文章
Java數(shù)據(jù)類型之引用數(shù)據(jù)類型解讀
這篇文章主要介紹了Java數(shù)據(jù)類型之引用數(shù)據(jù)類型,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07SpringBoot+Redis布隆過(guò)濾器防惡意流量擊穿緩存
本文主要介紹了SpringBoot+Redis布隆過(guò)濾器防惡意流量擊穿緩存,文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03一文詳細(xì)講解Java的父子繼承、方法的重寫與super關(guān)鍵字
Java中繼承是通過(guò)extends關(guān)鍵字實(shí)現(xiàn),幫助減少代碼重復(fù),提高復(fù)用性,子類繼承父類的屬性和方法,但私有成員除外,方法重寫(override)使子類改造父類方法以適應(yīng)新功能,這篇文章主要介紹了Java的父子繼承、方法的重寫與super關(guān)鍵字的相關(guān)資料,需要的朋友可以參考下2024-10-10Spring Security常用過(guò)濾器實(shí)例解析
這篇文章主要介紹了Spring Security常用過(guò)濾器實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03