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去除重复对象的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • springboot整合token的实现代码

    springboot整合token的实现代码

    这篇文章主要介绍了springboot整合token的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 东方通TongWeb结合Spring-Boot使用的实现

    东方通TongWeb结合Spring-Boot使用的实现

    本文主要介绍了东方通TongWeb结合Spring-Boot使用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • spring装配bean的3种方式总结

    spring装配bean的3种方式总结

    这篇文章主要给大家介绍了关于spring装配bean的3种方式,文中通过示例代码介绍的非常详细,对大家的学习或者使用Spring具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • SpringBoot集成多数据源解析

    SpringBoot集成多数据源解析

    这篇文章主要介绍了SpringBoot集成多数据源解析,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • 如何使用BeanUtils.copyProperties进行对象之间的属性赋值

    如何使用BeanUtils.copyProperties进行对象之间的属性赋值

    这篇文章主要介绍了使用BeanUtils.copyProperties进行对象之间的属性赋值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • java abstract class interface之间的区别介绍

    java abstract class interface之间的区别介绍

    含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象,abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法
    2012-11-11
  • 深入理解Spring事务原理

    深入理解Spring事务原理

    这篇文章主要带领大家深入理解Spring事务原理,Spring事务的传播属性
    2016-07-07
  • SpringBoot项目中访问HTML页面的实现示例

    SpringBoot项目中访问HTML页面的实现示例

    本文主要介绍了SpringBoot项目中访问HTML页面的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • centos7如何通过systemctl启动springboot服务代替java -jar方式启动

    centos7如何通过systemctl启动springboot服务代替java -jar方式启动

    这篇文章主要介绍了centos7如何通过systemctl启动springboot服务代替java -jar方式启动,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-01-01

最新评论