首页 > 编程语言 >Java【案例2-5】 剪刀石头布小游戏

Java【案例2-5】 剪刀石头布小游戏

时间:2024-08-09 21:23:43浏览次数:15  
标签:Java 游戏 int 用户 小游戏 随机数 获胜 剪刀

案例介绍:“剪刀石头布”的游戏相信大家都不陌生,本案例要求编写一个剪刀石头布游戏的程序。程序启动后会随机生成1~3的随机数,分别代表剪刀、石头和布,玩家通过键盘输入剪刀、石头和布与电脑进行5轮的游戏,赢的次数多的一方为赢家。若五局皆为平局,则最终结果判为平局。

案例思路: 

        1.从运行结果中分析可知,我们需要使用先打印头部显示的内容。在使用for循环5次Scanner类的用户输入代码以及随机数,这样我们就可以得到5个用户输入和5个随机数。

      随机数可以使用Random类中的nextInt(int n)方法,如下代码会生成一个1-9的随机数:

                         int randomNumber=new Random().nextInt(10);

        2.从任务描述中可知,我们生成的是1-3的随机数,可以把1代表剪刀,2代表石头,3代表布,首先使用if..else语句判断用户输入的内容,再根据随机生成的数字与玩家输入的内容做判断,可以得出一轮游戏的输赢。

        3.最后在程序的开始定义两个int变量作为记录游戏输赢的值,在游戏中玩家获胜一句时a+1,在游戏平局时b+1,再使用if..else语句判断,将结果分过获胜、和局、失败三种结果。如果玩家与电脑获胜场次一致那结果为和局,如果玩家获胜场次大于电脑那么结果为获胜,反之则为失败。

案例实现:

public class Main {
    public static void main(String[] args) {
        //通过Random类中的nextInt(int n)方法,生成1-3的随机数   1代表剪刀 2代表
        //石头 3代表布
        int a=0;   //玩家获胜场次
        int b=0;   //平局场次
        System.out.println("程序已启动");
        System.out.println("剪刀  石头  布");
        Scanner sc = new Scanner(System.in);
        for(int i = 1; i<=5;i++){
        System.out.println("第"+i+"局");
        String enter = sc.next();  //接收用户输入的字符
        // 随机生成1-3的随机数
        int randomNumber=new Random().nextInt(3)+1;
        if(enter.equals("剪刀")) {    //判断用户输入的字符
         if(randomNumber==1) {    //判断谁输谁赢
          System.out.println("电脑本次出的是剪刀");
          System.out.println("打平了");
          b++;    //平局后b+1
         }else if(randomNumber==2) {
           System.out.println("电脑本次出的是石头");
           System.out.println("你输了");
         }else if(randomNumber==3) {
           System.out.println("电脑本次出的是布");
           System.out.println("你赢了");
           a++;      //玩家赢后 a+1
         }
        }else if(enter.equals("石头")) {
         if(randomNumber==1) {
          System.out.println("电脑本次出的是剪刀");
          System.out.println("你赢了");
          a++;
         }else if(randomNumber==2) {
          System.out.println("电脑本次出的是石头");
          System.out.println("打平了");
          b++;
         }else if(randomNumber==3) {
          System.out.println("电脑本次出的是布");
          System.out.println("你输了");
         }
        }else if(enter.equals("布")) {
         if(randomNumber==1) {
           System.out.println("电脑本次出的是剪刀");
           System.out.println("你输了");
         }else if(randomNumber==2) {
           System.out.println("电脑本次出的是石头");
           System.out.println("你赢了");
           a++;
         }else if(randomNumber==3) {
           System.out.println("电脑本次出的是布");
           System.out.println("打平了");
           b++;
         }
        }else {
         System.out.println("输入错误,游戏终止!请您认真玩游戏!");
        }
       }
        System.out.println("本次游戏您赢了"+a+"局,平了"+b+"局");
        int c = 5-a-b;    //计算出电脑胜利的场次
        if(a==c) {         //和局
           System.out.println("和局!");
        }else if(a>b) {   //获胜
           System.out.println("您赢了!");
        }else{
           System.out.println("您输了!");
        }
    }
}

第8~9行代码定义了两个int变量用于记录每局游戏的赢或平局。第13~17行代码使用for循序5次,打印了第几局游戏、循环了5次用户输入以及5个1-3的随机数。第18~60行代码使用if...else语句判断,将用户输入的字符分为4类:

  1. 如果用户输入了剪刀,电脑随机出2,用户就可以获胜;电脑随机出1,为平局;电脑随机出3,用户此局为输;
  2. 用户输入石头,电脑随机出1,用户就可以获胜;
  3. 用户如果输入布,电脑随机出2,用户就可以获胜;
  4. 用户如果输入其他字符,则为判断无效,程序将停止;

第61~70行代码使用if..else语句判断游戏最终的输赢。

运行结果:

标签:Java,游戏,int,用户,小游戏,随机数,获胜,剪刀
From: https://blog.csdn.net/qq_74269244/article/details/140940668

相关文章

  • Java【案例3-1】基于控制台的购书系统
    案例介绍:伴随互联网的蓬勃发展,网络购书系统作为电子商务的一种形式,正以其高效、低成本的优势逐步成为新兴的经营模式,人们已经不再满足互联网的用途仅仅局限于信息的浏览和发布,更渴望着能够充分享受互联网所带来的更多便利。网络购书系统正适应了当今社会快节奏地生活,使顾客足不......
  • 搭建Java集成开发环境教程
            对于Java开发,‌IntelliJIDEA是一个广泛使用的集成开发环境。‌它提供了卓越的代码自动补全、‌动态语法检测、‌重构功能,‌以及对各种主流框架和前沿技术的深度支持。‌IntelliJIDEA有Ultimate版和CommunityEdition版,‌Ultimate版功能全面但收费,‌而Communi......
  • Java异常处理-2
    throw关键字throw用来对外主动抛出一个异常,通常下面两种情况我们主动对外抛出异常:当程序遇到一个满足语法,但是不满足业务要求时,可以抛出一个异常告知调用者。程序执行遇到一个异常,但是该异常不应当在当前代码片段被解决时可以抛出给调用者。例packageexception;/**......
  • [Java并发]ThreadLocal补充
    ThreadLocal缺点及解决方案每个Thread上都有一个threadLocals属性,它是一个ThreadLocalMap,里面存放着一个Entry数组,key是ThreadLocal类型的弱引用,value是对用的值。所有的操作都是基于这个ThreadLocalMap操作的。但是它有一个局限性,就是不能在父子线程之间传递。即在子线程中无......
  • 2024年华为OD机试真题-求幸存数之和-(C++/Java/python)-OD统一考试(C卷D卷)
    2024华为OD机试真题目录-(B卷C卷D卷)-【C++JavaPython】_华为od机试csdn-CSDN博客 题目描述给一个正整数数列nums,一个跳数jump,及幸存数量left。运算过程为:从索引0的位置开始向后跳,中间跳过J个数字,命中索引为J+1的数字,该数被敲出,并从该点起跳,以此类推,直到幸存le......
  • Java基础语法:变量与数据类型
    变量1.概念:变量是用来存储数据的命名容器并在程序的不同部分使用它。2.语法:数据类型变量名称=初始值;可以这样理解:**数据类型:**鱼缸**变量名称:**鱼的名字**变量的值:**鱼缸里装的鱼或数量数量数据类型基本数据类型-整型:1.byte:8位,有符号整数(-128到127)2.short:......
  • IDEA发生“Error:java: 错误: 不支持发行版本 5”错误的解决方案
    1、问题描述如上图所示,使用IDEA创建了一个maven项目,在运行时发生“Error:java:错误:不支持发行版本5”的报错。原因分析:该错误是由于IDEA的各个配置项存在JDK版本冲突导致的。2、解决方案一2.1、设置Maven的JDK插件如上图所示,在pom.xml文件中,设置一个编译插......
  • [Java异常]OOM
    小伙伴们,有没有遇到过程序突然崩溃,然后抛出一个OutOfMemoryError的异常?这就是我们俗称的OOM,也就是内存溢出。简单来说,就是你的Java应用想要的内存超过了JVM愿意给的极限,就会抛出这个错误。那么为什么会出现OOM呢?一般都是由这些问题引起:分配过少:JVM初始化内存小,业务使用了大......
  • Java 基于微信小程序的学校心理咨询聊天室系统 uniapp毕业设计
    文末获取资源,收藏关注不迷路文章目录项目介绍功能需求技术介绍项目界面关键代码目录项目介绍该课题旨在创建一个专门针对大学生心理健康的知识科普平台,其受众包含大学生与其父母,包含知识科普,自我筛查,在线咨询,与匿名倾诉(包含父母与大学生)四个大点。全方位的对大学生......
  • Java基于微信小程序的琴房管理系统 uniapp 毕业设计
    文末获取资源,收藏关注不迷路文章目录项目介绍用户需求分析学生用户管理员用户技术介绍项目界面关键代码目录项目介绍随着互联网技术的发发展,计算机技术广泛应用在人们的生活中,逐渐成为日常工作、生活不可或缺的工具,钢琴培训企业各种管理系统层出不穷,为钢琴培训企......