溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java如何實現猜拳小游戲

發布時間:2021-08-04 09:15:45 來源:億速云 閱讀:116 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“Java如何實現猜拳小游戲”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Java如何實現猜拳小游戲”這篇文章吧。

先看看我寫了哪些類:

Java如何實現猜拳小游戲

Player:玩家類;

ComputerPlayer:機器人玩家類,主要用來實現機器人隨機出拳;

Game:游戲類,主要實現游戲規則的邏輯,以及正式游戲的邏輯;

TestGuessBox:代碼測試類;

Player類:

//玩家類
public class Player {
 private String name; //玩家昵稱
 private int score; //玩家積分
 private String box; //玩家出的
 
 //玩家構造函數,傳入玩家昵稱與玩家初始積分
 Player(String name,int score){
 this.name=name;
 this.score=score;
 }
 
 public String getName() {
 return name;
 }
 public void setName(String name) {
 this.name = name;
 }
 public int getScore() {
 return score;
 }
 public void setScore(int score) {
 this.score = score;
 }
 public String getBox() {
 return box;
 }
 public void setBox(String box) {
 this.box = box;
 }
 
 
}

ComputerPlayer類

public class ComputerPlayer extends Player {
 
 
 //機器人玩家構造函數,傳入機器人昵稱與初始積分
 ComputerPlayer(String name, int score) {
 super("機器人"+name, score);
 // TODO Auto-generated constructor stub
 }
 
 /**
 * 實現機器人玩家隨機出拳的邏輯
 */
 void punch() {
 String[] box = {"剪刀","石頭","布"};
 int index =(int) (Math.random()*3);
 
 this.setBox(box[index]);
 }
}

Game類

import java.util.Scanner;
 
public class Game {
 Player p; //玩家
 ComputerPlayer cp; //機器人玩家
 
 //構造函數,得到一個玩家和一個機器人玩家
 Game(Player p, ComputerPlayer cp) {
 this.p = p;
 this.cp = cp;
 }
 
 //開始游戲
 void start() {
  System.out.println("玩家"+p.getName()+
   "和"+cp.getName()+"開始游戲咯");
  System.out.println("您的初始積分為:"+p.getScore()+
   "\n"+cp.getName()+"的積分是:"+cp.getScore());
  Scanner sc=new Scanner(System.in);
  while(true) {
  
  System.out.println("請出拳(剪刀石頭布,exit退出游戲):");
  String pbox=sc.next();
  if(filter(pbox)) { //過濾器
   if(pbox.equals("exit")) { //退出游戲
   break;
   }else {
   p.setBox(pbox);
   cp.punch();
   System.out.println("您出了:"+p.getBox());
   System.out.println(cp.getName()+"出了:"+cp.getBox());
   int result = ruler(p,cp);
   if(result>0) {
    System.out.println("您贏了,贏得10積分");
    p.setScore(p.getScore()+10);
    cp.setScore(cp.getScore()-10);
   }
   else if(result<0) {
    System.out.println("您輸了,扣除10積分");
    p.setScore(p.getScore()-10);
    cp.setScore(cp.getScore()+10);
   }
   else {
    System.out.println("您和機器人打平了!");
   }
   }
  }
  
  else {
  System.out.println("輸入了無法識別的關鍵字,請重新輸入:");
  continue; //退出本次循環,進入下一次循環
  }
  
  } 
  
  System.out.println("本輪結束,積分情況如下:");
  System.out.println("您的當前積分:"+p.getScore());
  System.out.println(cp.getName()+"的當前積分:"
  +cp.getScore());
  
 }
 
 /**
 * 游戲規則
 * 
 * @param p1 玩家1
 * @param cp2 機器玩家2
 * @return 0為打平,1為玩家贏,-1為機器玩家贏
 */
 int ruler(Player p1, Player cp2) {
 
 if (p1.getBox().equals("剪刀")) {
  if (cp2.getBox().equals("石頭"))
  return -1;
  else if (cp2.getBox().equals("布"))
  return 1;
 } else if (p1.getBox().equals("石頭")) {
  if (cp2.getBox().equals("剪刀"))
  return 1;
  else if (cp2.getBox().equals("布"))
  return -1;
 } else if (p1.getBox().equals("布")) {
  if (cp2.getBox().equals("剪刀"))
  return -1;
  else if (cp2.getBox().equals("石頭"))
  return 1;
 }
 return 0;
 }
 
 /**
 * 過濾器
 * @param s 需要過濾的文字
 * @return
 */
 boolean filter(String s) {
 if (s.equals("剪刀") || s.equals("石頭") || s.equals("布") || s.equals("exit")) {
  return true;
 } else
  return false;
 }
}

TestGuessBox類

public class TestGuessBox {
 
 public static void main(String[] args) {
 // TODO Auto-generated method stub
 Player p =new Player("小七月",100);
 ComputerPlayer cp=new ComputerPlayer("小丑八怪",100);
 Game game=new Game(p,cp);
 game.start();
 
 }
 
}

以上是“Java如何實現猜拳小游戲”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女