JavaSE如何实现猜拳游戏
创始人
2024-12-29 00:01:08
0次

JavaSE实现猜拳游戏的具体代码,具体内容如下

import java.util.Random;
import java.util.Scanner;

public class CaiQuan {
  private String userName;//存储用户名
  private String cName;//存储对手
  private int cNameNum;//存储玩家选择的对手代号
  private String userInfo;//用户出拳信息
  private String cInfo;//电脑出拳信息
  private int uNum;//接收用户输入的数
  private int cNum;//接受电脑产生的数
  private Scanner sc;
  private static final String Army01 = "张飞";
  private static final String Army02 = "关羽";
  private static final String Army03 ="刘备";
  private static boolean flag ;//平局和电脑胜为true,玩家赢为fasle
  private int selectInfo;//玩家是否继续游戏,1表示继续,0表示结束
  private int score = 0;//分数

  public static void main(String[] args) {
    CaiQuan cq = new CaiQuan();
    cq.gameInfo();
    do{
      cq.selectArmy();
      cq.userInput();
      cq.cOutput();
      cq.compareCaiQuan();
      cq.gameOver();
    }while(flag);
  }

  public CaiQuan(){

  }
  //打印游戏信息
  public void gameInfo(){
    System.out.println("欢迎进行猜拳小游戏!");
    System.out.println("1.表示石头  2.表示剪刀  3.表示布");
    sc = new Scanner(System.in);
    if(userName==null){
      System.out.println("玩家请输入用户名:");
      System.out.println("=============================================");
      userName = sc.next();
    }
  }
  //选择对手
  public void selectArmy(){
    System.out.println("=============================================");
    System.out.println("对手选择列表:");
    System.out.println("1:"+Army01+"  2:"+Army02+"   3:"+Army03);
    System.out.println(userName+"请输入对手:");
    System.out.println("=============================================");
    test01();
    System.out.println(userName+",您选择的对手为"+cName);
    System.out.println("=============================================");
  }
  //判断对手
  public void test01(){
    cNameNum = sc.nextInt();
    if(cNameNum==1){
      cName = Army01;
    }else if(cNameNum==2){
      cName = Army02;
    }else if(cNameNum==3){
      cName = Army03;
    }else{
      System.out.println("对手选择错误,请重新选择!");
      test01();
    }  
  }
  //开始游戏
  public void userInput(){
    System.out.println(userName+"请出拳:");
    System.out.println("1.表示石头  2.表示剪刀  3.表示布");
    System.out.println("=============================================");
    test();
    System.out.println("=============================================");
    System.out.println(userName+"的出拳为:"+userInfo);
  }
  //判断输入的数是否错误
  public void test(){
    uNum = sc.nextInt();
    if(uNum==1){
      userInfo = "石头";
    }else if(uNum==2){
      userInfo = "剪刀";
    }else if(uNum==3){
      userInfo = "布";
    }else{
      System.out.println("输入错误,请请重新输入");
      test();
    }
  }
  //电脑出拳
  public void cOutput(){
    Random random = new Random();
    cNum = random.nextInt(3)+1;
    if(cNum==1){
      cInfo = "石头";
    }else if(cNum==2){
      cInfo = "剪刀";
    }else if(cNum==3){
      cInfo = "布";
    }
    System.out.println(cName+"出拳为:"+cInfo);
  }
  //比较大小
  public void compareCaiQuan(){
    String msg = null;
    if(uNum == 1){
      if(cNum == 1){
        msg="此时平局";
        flag = true;
      }else if(cNum == 2){
        score += 1; 
        msg="此时"+userName+"胜出";
        flag = false;
      }else {
        score -= 1; 
        msg="此时"+cName+"胜出";
        flag = true;
      }
      return;
    }else if(uNum == 2){
      if(cNum == 1){
        score -= 1;
        msg="此时"+cName+"胜出";
        flag = true;
      }else if(cNum == 2){
        msg="此时平局";
        flag = true;
      }else {
        score += 1;
        msg="此时"+userName+"胜出";
        flag = false;
      }
    }else {
      if(cNum == 1){
        score += 1;
        msg="此时"+userName+"胜出";
        flag = false;
      }else if(cNum == 2){
        score -= 1;
        msg="此时"+cName+"胜出";
        flag = true;
      }else {
        msg=" 此时平局";
        flag = true;
      }
    }
    System.out.println(msg);
  }
  //游戏结束信息
  public void gameOver(){
    System.out.println("=============================================");
    if(flag==true){
      System.out.println(userName+",您没有战胜电脑,不要灰心,请继续游戏!");
      System.out.println("=============================================");
      System.out.println("继续游戏请输入:1   结束游戏请输入:2");
      test02();
    }else if(flag==false){
      System.out.println(userName+",您太厉害了,竟然战胜了"+cName+",游戏结束!");
      System.out.println("=============================================");
      System.out.println("继续游戏请输入:1   结束游戏请输入:2");
      test02();
    }
  }
  //判断玩家是否继续游戏
  public void test02(){
    selectInfo = sc.nextInt();
    if(selectInfo==1){
      flag = true;
    }else if(selectInfo==2){
      System.out.println(userName+",您的游戏分数为:"+score);
      System.exit(0);
    }else{
      System.out.println(userName+",您输入错误,请重新输入!");
      test02();  
    }
  }
}

相关内容

热门资讯

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