怎么用Java写一个猜拳小游戏
创始人
2024-12-24 08:02:28
0次

先看看我写了哪些类:

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();  } }

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...