JavaSE实现猜拳游戏

 更新时间:2021年01月19日 11:50:26   作者:Sylarjyd  
这篇文章主要为大家详细介绍了JavaSE实现猜拳游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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();  
    }
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 教你使用Java获取当前时间戳的详细代码

    教你使用Java获取当前时间戳的详细代码

    这篇文章主要介绍了如何使用Java获取当前时间戳,通过两个java示例,向大家展示如何获取java中的当前时间戳,文本通过示例代码给大家展示了java获取当前时间戳的方法,需要的朋友可以参考下
    2022-01-01
  • Java ArrayList.add 的实现方法

    Java ArrayList.add 的实现方法

    这篇文章主要介绍了Java ArrayList.add 的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • SpringBoot @GroupSequenceProvider注解实现bean多属性联合校验的示例代码

    SpringBoot @GroupSequenceProvider注解实现bean多属性联合校验的示例代码

    这篇文章主要介绍了SpringBoot @GroupSequenceProvider注解实现bean多属性联合校验,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • Idea中mapper注入报错问题及解决

    Idea中mapper注入报错问题及解决

    这篇文章主要介绍了Idea中mapper注入报错问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Java IO流常用字节字符流原理解析

    Java IO流常用字节字符流原理解析

    这篇文章主要介绍了Java IO流常用字节字符流原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Mybatis如何通过注解开启使用二级缓存

    Mybatis如何通过注解开启使用二级缓存

    这篇文章主要介绍了Mybatis基于注解开启使用二级缓存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 如何利用JConsole观察分析Java程序的运行并进行排错调优

    如何利用JConsole观察分析Java程序的运行并进行排错调优

    从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码
    2015-12-12
  • java ssm框架实现分页功能的示例代码(oracle)

    java ssm框架实现分页功能的示例代码(oracle)

    这篇文章主要介绍了java ssm框架实现分页功能的示例代码(oracle),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • java+socket实现简易局域网聊天室

    java+socket实现简易局域网聊天室

    这篇文章主要为大家详细介绍了java+socket实现简易局域网聊天室,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Spring注入方式有哪些

    Spring注入方式有哪些

    你知道Spring的注入方式有哪几种吗?这篇文章主要为大家详细介绍了Spring的注入方式,感兴趣的小伙伴们可以参考一下
    2016-09-09

最新评论