Java控制台实现猜拳游戏

 更新时间:2021年01月19日 09:44:36   作者:一本正经小崽崽  
这篇文章主要为大家详细介绍了Java控制台实现猜拳游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Java控制台实现猜拳游戏的具体代码,供大家参考,具体内容如下

1、目标

通过控制台实现一个人机对战的猜拳游戏,用户通过输入(1.剪刀 2.石头 3.布),机器随机生成(1.剪刀 2.石头 3.布),胜者积分,n 局以后通过积分的多少判定胜负。

2、源码

根据目标的要求,可以大概知道,我们需要的类有:

①一个用户类User,用于获得和存储用户的出拳;

②一个机器人的类Robot,用于随机生成机器人的出拳;

③一个Game类,是存放核心代码的类,用户和机器人的出拳在这里进行对比,对结果进行记录,最后输出结果;

④最后是一个调用各个方法的Guess类。

直接上代码:

User.java

import java.util.Scanner;

public class User{
  static Scanner input = new Scanner(System.in);
  int user = 0;//用户出拳
  int score = 0;//用户积分
  int num = 0;//对战局数

  public int setUser(){
      System.out.println("请输入:1.剪刀 2.石头 3.布");
      user = input.nextInt();
      if (user == 1){
        System.out.println("用户出拳:剪刀");
      }else if (user == 2){
        System.out.println("用户出拳:石头");
      }else if (user == 3){
        System.out.println("用户出拳:布");
      }
    return user;
  }
}

Robot.java

import java.util.Random;

public class Robot {
  int id = 0;//获得机器人的出手
  int score = 0;//机器人的积分

  //获得机器人的出拳
  public int setId(){
    Random random = new Random();
    int r = random.nextInt(3);
    id = r + 1;//获取机器人随机出拳
    if (id == 1){
      System.out.println("机器人出拳:剪刀");
    }else if (id == 2){
      System.out.println("机器人出拳:石头");
    }else if (id == 3){
      System.out.println("机器人出拳:布");
    }
    return id;
  }
}

Game.java

import java.util.Scanner;

public class Game {
  //对用户类和机器人类进行初始化
  User user = new User();
  Robot robot = new Robot();

  public void GameStart() {
    //初始化界面
    System.out.println("-------------欢迎进入猜拳游戏---------------");
    System.out.println();
    System.out.println("******************************************");
    System.out.println("——————出拳规则:1.剪刀  2.石头  3.布——————————");
    System.out.println("-------------》》》猜拳开始《《《------------");
    System.out.println("-------------------------------------------");
    Scanner input = new Scanner(System.in);

    //获得用户想要进行的对战次数
    System.out.println("请输入对战局数:");
    user.num = input.nextInt();
    System.out.println("游戏开始");
    
    int userFirst;//用户出拳
    int robotFirst;//机器人出拳
      for (int i = 0; i < user.num; i++) {
        //获取双方的出拳
        userFirst = user.setUser();
        robotFirst = robot.setId();
        //判断胜负
        if (userFirst == robotFirst) {
          System.out.println("结果:平局,不积分。");
        } else if ((userFirst == 2 && robotFirst == 1) || (userFirst == 3 && robotFirst == 2)) {
          System.out.println("结果:你赢了,加一分!");
          user.score++;
        } else {
          System.out.println("结果:你输了,机器人加一分。");
          robot.score++;
        }
      }
    //显示结果
    showResult();
    }

    //输出对战结果
  private void showResult() {
    //显示对战次数
    System.out.println("------------------------------");
    System.out.println("对战次数:" + user.num);
    //显示最终得分
    System.out.println("\n姓名\t得分");
    System.out.println("用户" + "\t" + user.score);
    System.out.println("机器人" + "\t" + robot.score + "\n");

    //显示对战结果
    int result = Result();
    if (result == 1) {
      System.out.println("结果:打成平手。");
    } else if (result == 2) {
      System.out.println("结果:恭喜你赢得对战!");//用户获胜
    } else {
      System.out.println("结果:你输了,不气馁,下次再来");//计算机赢
    }
    System.out.println("游戏结束");
    System.out.println("--------------------------");
  }

  //计算比赛结果
  private int Result() {
    if (user.score == robot.score) {
      return 1;
    } else if (user.score > robot.score) {
      return 2;
    } else {
      return 3;
    }
  }
}

Guess.java

public class Guess {
  public static void main(String[] args) {
    Game game = new Game();
    
    //调用输出比赛结果的方法
    game.GameStart();
  }
}

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

相关文章

  • 亲测SpringBoot参数传递及@RequestBody注解---踩过的坑及解决

    亲测SpringBoot参数传递及@RequestBody注解---踩过的坑及解决

    这篇文章主要介绍了亲测SpringBoot参数传递及@RequestBody注解---踩过的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Maven的几个常用plugin

    Maven的几个常用plugin

    本文主要介绍了Maven的几个常用plugin。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • Java编程环境搭建和变量基本使用图文教程

    Java编程环境搭建和变量基本使用图文教程

    这篇文章主要介绍了Java编程环境搭建和变量基本使用,结合图文形式详细分析了java编程语言环境搭建、配置、变量、注释的基本使用方法,需要的朋友可以参考下
    2020-02-02
  • SpringBoot根据目录结构自动生成路由前缀的实现代码

    SpringBoot根据目录结构自动生成路由前缀的实现代码

    本文介绍如何根据目录结构给RequestMapping添加路由前缀,具体实现方法,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-08-08
  • Spring 实现自定义监听器案例

    Spring 实现自定义监听器案例

    这篇文章主要介绍了Spring 实现自定义监听器案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • java调用python代码的两种实现方式:Runtime.exec()和Jython

    java调用python代码的两种实现方式:Runtime.exec()和Jython

    在Java中调用Python代码有多种方法,包括使用Runtime.exec()和第三方库如Jython,Runtime.exec()通过系统命令执行Python脚本,适用于简单的调用场景,Jython则是一个Python的Java实现,允许在Java中直接运行Python代码,适用于更深层次的集成需求
    2025-01-01
  • SpringBoot3实现上传图片并返回路径让前端显示图片

    SpringBoot3实现上传图片并返回路径让前端显示图片

    这篇文章主要介绍了SpringBoot3实现上传图片并返回路径让前端显示图片,文中通过图文和代码讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-12-12
  • Java日常练习题,每天进步一点点(13)

    Java日常练习题,每天进步一点点(13)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-07-07
  • Java连接mysql数据库以及mysql驱动jar包下载和使用方法

    Java连接mysql数据库以及mysql驱动jar包下载和使用方法

    这篇文章主要给大家介绍了关于Java连接mysql数据库以及mysql驱动jar包下载和使用方法,MySQL是一款常用的关系型数据库,它的JDBC驱动程序使得我们可以通过Java程序连接MySQL数据库进行数据操作,需要的朋友可以参考下
    2023-11-11
  • 面试题:用 Java 逆序打印链表

    面试题:用 Java 逆序打印链表

    这篇文章主要介绍了面试题:用 Java 逆序打印链表,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07

最新评论