java實現猜拳遊戲試題

本文實例為大傢分享瞭java實現猜拳遊戲的具體代碼,供大傢參考,具體內容如下

試題描述

通過控制臺方式實現一個人機對戰的猜拳遊戲,用戶通過輸
入(1.剪刀 2.石頭 3.佈),機器隨機生成(1.剪刀 2.石頭 3.佈),勝者積分,n 局以後通過積分的多少判定勝負。

使用面向對象編程思想實現一個猜拳遊戲,以下代碼僅供參考!

思路

(1)首先需要明確的對象有哪些,玩傢以及機器,和遊戲規則;
(2)玩傢需要出拳,機器隨機出拳,遊戲規則就是判斷輸贏和積分的多少,並顯示最後的結果。

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.結束本局");
 int result = sc.nextInt();
 return result; 
 } 
}

2.定義一個機器類Compyter

代碼如下(示例):

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

3.定義一個遊戲類Game,包括初始化,得分規則,顯示設置等方法

(1)初始化方法init()

代碼如下(示例):

public void init() { 
 player = new Player();
 player.initPl();
 computer = new Computer();
 computer.initCom();
 sc = new Scanner(System.in);
  count = 0;//局數為0
  Grade = 0;//分數為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)輸出遊戲結果方法print(),同時需要將字符串顯示方法punchesName()

代碼如下(示例):

public void print(int sum,int sumGrade) {
 System.out.println("遊戲結束!");
 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+"分,恭喜您贏瞭"); 
 }
 }
 //數字轉變為字符串用於結果顯示
 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);//輸出總得分與局數
 flag = false;//結束循環,結束遊戲
  break;
  }
 default:
 System.out.println("輸入有誤,請重新輸入");break;
 }
 } 
 }

(5)遊戲類的定義Game

代碼如下(示例):

public class Game {
 Player player;
 Computer computer;
 int count;//局數
 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();//遊戲開始
 }

總結

以上就是今天試題要分享的內容,根據面向對象思路,僅僅簡單介紹自定義類和方法的定義和使用,以上代碼僅供交流學習。