溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

java如何實(shí)現(xiàn)猜拳游戲試題

發(fā)布時(shí)間:2021-03-23 13:40:20 來(lái)源:億速云 閱讀:136 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)java如何實(shí)現(xiàn)猜拳游戲試題,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

試題描述

通過(guò)控制臺(tái)方式實(shí)現(xiàn)一個(gè)人機(jī)對(duì)戰(zhàn)的猜拳游戲,用戶(hù)通過(guò)輸
入(1.剪刀 2.石頭 3.布),機(jī)器隨機(jī)生成(1.剪刀 2.石頭 3.布),勝者積分,n 局以后通過(guò)積分的多少判定勝負(fù)。

使用面向?qū)ο缶幊趟枷雽?shí)現(xiàn)一個(gè)猜拳游戲,以下代碼僅供參考!

思路

(1)首先需要明確的對(duì)象有哪些,玩家以及機(jī)器,和游戲規(guī)則;
(2)玩家需要出拳,機(jī)器隨機(jī)出拳,游戲規(guī)則就是判斷輸贏和積分的多少,并顯示最后的結(jié)果。

1.定義一個(gè)玩家類(lèi)player

代碼如下(示例):

public class Player {
 Scanner sc; 
 public void initPl() { 
 sc = new Scanner(System.in);
 }
 //玩家出拳方法
 public int showFinger() {
 System.out.println("請(qǐng)輸入您的出拳:1.剪刀,2.石頭,3.布,4.結(jié)束本局");
 int result = sc.nextInt();
 return result; 
 } 
}

2.定義一個(gè)機(jī)器類(lèi)Compyter

代碼如下(示例):

public class Computer { 
 Random random;
 public void initCom() { 
 random = new Random();
 }
 //電腦開(kāi)始出拳,返回1到3的隨機(jī)數(shù)
 public int showFingerCom() { 
 return random.nextInt(3)+1;
 } 
}

3.定義一個(gè)游戲類(lèi)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;//局?jǐn)?shù)為0
  Grade = 0;//分?jǐn)?shù)為0  
 }

(2)計(jì)算每次得分方法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(),同時(shí)需要將字符串顯示方法punchesName()

代碼如下(示例):

public void print(int sum,int sumGrade) {
 System.out.println("游戲結(jié)束!");
 if(sumGrade<0) { 
 System.out.println("本次游戲進(jìn)行"+sum+"局,您的得分為:"+sumGrade+"分,本次游戲很遺憾您輸了");
 }else if(sumGrade==0) {
 System.out.println("本次游戲進(jìn)行"+sum+"局,您的得分為:"+sumGrade+"分,本次游戲平局"); 
 }else if(sumGrade>0) {
 System.out.println("本次游戲進(jìn)行"+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)開(kāi)始游戲方法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("機(jī)器出的是:"+punchesName(comPunches));
  int ge = Grades(playerPunches,comPunches,count);
  Grade+=ge;//總得分
  break;
 }
 case 4:{
 print(count,Grade);//輸出總得分與局?jǐn)?shù)
 flag = false;//結(jié)束循環(huán),結(jié)束游戲
  break;
  }
 default:
 System.out.println("輸入有誤,請(qǐng)重新輸入");break;
 }
 } 
 }

(5)游戲類(lèi)的定義Game

代碼如下(示例):

public class Game {
 Player player;
 Computer computer;
 int count;//局?jǐn)?shù)
 Scanner sc;
 int Grade;//得分
 boolean flag = true;
 、、、、初始化,得分,輸出.....

4.主程序入口Main

代碼如下(示例):

public static void main(String[] args) {
 System.out.println("歡迎進(jìn)行猜拳游戲!");
 Game game = new Game();
 game.init();//游戲初始化
 game.start();//游戲開(kāi)始
 }

關(guān)于“java如何實(shí)現(xiàn)猜拳游戲試題”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI