java實現(xiàn)猜拳游戲試題
本文實例為大家分享了java實現(xiàn)猜拳游戲的具體代碼,供大家參考,具體內(nèi)容如下
試題描述通過控制臺方式實現(xiàn)一個人機對戰(zhàn)的猜拳游戲,用戶通過輸入(1.剪刀 2.石頭 3.布),機器隨機生成(1.剪刀 2.石頭 3.布),勝者積分,n 局以后通過積分的多少判定勝負。
使用面向?qū)ο缶幊趟枷雽崿F(xiàn)一個猜拳游戲,以下代碼僅供參考!
思路(1)首先需要明確的對象有哪些,玩家以及機器,和游戲規(guī)則;(2)玩家需要出拳,機器隨機出拳,游戲規(guī)則就是判斷輸贏和積分的多少,并顯示最后的結(jié)果。
1.定義一個玩家類player
代碼如下(示例):
public class Player { Scanner sc; public void initPl() { sc = new Scanner(System.in); } //玩家出拳方法 public int showFinger() { System.out.println('請輸入您的出拳:1.剪刀,2.石頭,3.布,4.結(jié)束本局'); int result = sc.nextInt(); return result; } }
2.定義一個機器類Compyter
代碼如下(示例):
public class Computer { Random random; public void initCom() { random = new Random(); } //電腦開始出拳,返回1到3的隨機數(shù) public int showFingerCom() { return random.nextInt(3)+1; } }
3.定義一個游戲類Game,包括初始化,得分規(guī)則,顯示設(shè)置等方法
(1)初始化方法init()
代碼如下(示例):
public void init() { player = new Player(); player.initPl(); computer = new Computer(); computer.initCom(); sc = new Scanner(System.in); count = 0;//局數(shù)為0 Grade = 0;//分數(shù)為0 }
(2)計算每次得分方法Grades()
代碼如下(示例):
public int Grades(int plg,int comg,int num) { int a = 0; if(plg==1&comg==3 | plg==2&comg==1 | plg==3&comg==2) { System.out.println('第'+num+'局,恭喜您這局贏了'); a = 1; }else if(plg==1&comg==2 | plg==2&comg==3 | plg==3&comg==1) { System.out.println('第'+num+'局,很抱歉,這局您輸了'); a = -1; }else if (plg==comg) { System.out.println('第'+num+'局,這局平局'); a = 0; } return a; }
(3)輸出游戲結(jié)果方法print(),同時需要將字符串顯示方法punchesName()
代碼如下(示例):
public void print(int sum,int sumGrade) { System.out.println('游戲結(jié)束!'); if(sumGrade<0) { System.out.println('本次游戲進行'+sum+'局,您的得分為:'+sumGrade+'分,本次游戲很遺憾您輸了'); }else if(sumGrade==0) { System.out.println('本次游戲進行'+sum+'局,您的得分為:'+sumGrade+'分,本次游戲平局'); }else if(sumGrade>0) { System.out.println('本次游戲進行'+sum+'局,您的得分為:'+sumGrade+'分,恭喜您贏了'); } } //數(shù)字轉(zhuǎn)變?yōu)樽址糜诮Y(jié)果顯示 public String punchesName(int result) { String str = ''; switch(result) { case 1: str = '剪刀';break; case 2: str = '石頭';break; case 3: str = '布';break; } return str; }
(4)開始游戲方法start()
代碼如下(示例):
public void start() { while(flag) { int playerPunches = player.showFinger(); switch(playerPunches) { case 1: case 2: case 3:{ count++; System.out.println('您出的是:'+punchesName(playerPunches)); int comPunches = computer.showFingerCom(); System.out.println('機器出的是:'+punchesName(comPunches)); int ge = Grades(playerPunches,comPunches,count); Grade+=ge;//總得分 break; } case 4:{ print(count,Grade);//輸出總得分與局數(shù) flag = false;//結(jié)束循環(huán),結(jié)束游戲 break; } default: System.out.println('輸入有誤,請重新輸入');break; } } }
(5)游戲類的定義Game
代碼如下(示例):
public class Game { Player player; Computer computer; int count;//局數(shù) Scanner sc; int Grade;//得分 boolean flag = true; 、、、、初始化,得分,輸出.....
4.主程序入口Main
代碼如下(示例):
public static void main(String[] args) { System.out.println('歡迎進行猜拳游戲!'); Game game = new Game(); game.init();//游戲初始化 game.start();//游戲開始 }
總結(jié)
以上就是今天試題要分享的內(nèi)容,根據(jù)面向?qū)ο笏悸罚瑑H僅簡單介紹自定義類和方法的定義和使用,以上代碼僅供交流學(xué)習(xí)。
相關(guān)文章:
1. 無線標記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁2. PHP8.0新功能之Match表達式的使用3. Android實現(xiàn)觸發(fā)html頁面的Button控件點擊事件方式4. JavaScript設(shè)計模式之策略模式實現(xiàn)原理詳解5. Nginx+php配置文件及原理解析6. 解決Python 進程池Pool中一些坑7. ajax請求添加自定義header參數(shù)代碼8. php網(wǎng)絡(luò)安全中命令執(zhí)行漏洞的產(chǎn)生及本質(zhì)探究9. 八種Vue組件間通訊方式合集(推薦)10. JavaScript基于用戶照片姓名生成海報
