java实现简单石头剪刀布小游戏

 更新时间:2022年01月06日 16:22:34   作者:凉皮!  
这篇文章主要为大家详细介绍了java实现简单石头剪刀布小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

简介

石头剪刀布游戏,进入游戏后,玩家需要输入玩家姓名。系统界面之后弹出欢迎界面,玩家可以选择出拳或者退出游戏。玩家选择出拳后同电脑出拳比较,输出猜拳结果。最后退出游戏后显示排行榜,输出总局数,胜率。

分析

通过while循环死循环模拟不断进行游戏,当用户输入0时break跳出while循环。

通过Random产生随机数模拟AI出拳

定义了一个choose方法,将用户输入和AI随机生成的数,转换成剪刀、石头和布。

判断输赢逻辑:

1:石头 2:剪刀 3:布

变量userChoose中存储的是用户的出拳
变量ai中存储的是电脑的出拳

当userChoose - ai 等于-1或2时,用户赢
当userChoose - ai 等于0时,平局
当userChoose - ai 等于1或-2时,电脑赢

源代码

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Random r = new Random();
        int count = 0;    // 总局数
        int win = 0;    // 获胜局数
        int result = 0;    // 结果
        int ai = 0;    // 电脑出拳
        System.out.print("请输入姓名:");
        String name = sc.nextLine();
        while(flag) {
            System.out.println("************************************************");
            System.out.println("欢迎"+ name + "进入猜拳游戏");
            System.out.println("1.石头     2.剪刀     3.布     0.退出");
            System.out.println("************************************************");
            System.out.print("请输入数字:");
            int userChoose = sc.nextInt();    // 玩家选择
            if (userChoose == 0) {    // 游戏结束
                break;
            }
            // AI出拳
            ai = r.nextInt(3)+1;
            // 输出玩家和电脑的出拳
            System.out.println("你的出拳是:" + choose(userChoose));
            System.out.println("电脑出拳是:" + choose(ai));
            // 判断输赢
            switch(userChoose - ai) {
                case -1:    // 赢
                case 2:
                    System.out.println("你赢了! ╭(╯^╰)╮");
                    win++;    // 用户赢,赢场计数器自增1
                    count++;    // 局数计数器自增1
                    break;
                case 0:    // 平局
                    System.out.println("平局,再来一局~~~~~o(* ̄︶ ̄*)o");
                    count++;
                    break;
                case 1:    // 输
                case -2:
                    System.out.println("你输了! O(∩_∩)O哈哈~");
                    count++;
                    break;
            }
            System.out.println("\n");
        }
        System.out.println();
        System.out.println("\t\t\t\t排行榜");
        System.out.println("************************************************");
        System.out.println("姓名\t\t总局数\t\t赢场\t\t胜率");
        System.out.println(name + "\t\t" + count + "\t\t\t" + win + "\t\t\t" + String.format("%.2f", (win*1.0/count)*100) + "%");
    }


    // 返回出拳
    public static String choose(int choose) {
        switch(choose) {
            case 1:
                return "石头";
            case 2:
                return "剪刀";
            case 3:
                return "布";
        }
        return "";
}

游戏截图

进入游戏输入姓名,显示菜单:

用户出石头:

用户出剪刀:

用户出布:

输入0游戏结束:

总结

本程序是学习中的一个小案例,目前程序比较基础,只能记录一个玩家的信息,且数据不能存在本地。作者是在校的一名学生,目前技术有限,如有考虑不周,请各路大神批评指正,共同学习。

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

相关文章

  • springboot整合redis实现发送邮箱并验证

    springboot整合redis实现发送邮箱并验证

    大家好,本篇文章主要讲的是springboot整合redis实现发送邮箱并验证,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • Spring mvc整合mybatis(crud+分页插件)操作mysql

    Spring mvc整合mybatis(crud+分页插件)操作mysql

    这篇文章主要介绍了Spring mvc整合mybatis(crud+分页插件)操作mysql的步骤详解,需要的朋友可以参考下
    2017-04-04
  • 使用位运算、值交换等方式反转java字符串的多种方法(四种方法)

    使用位运算、值交换等方式反转java字符串的多种方法(四种方法)

    这篇文章主要介绍了使用位运算、值交换等方式反转java字符串,本文通过四种方式给大家讲解,给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • JAVA基础之基本数据类型全面解析

    JAVA基础之基本数据类型全面解析

    下面小编就为大家带来一篇JAVA基础之基本数据类型全面解析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • Springboot中的Controller解析

    Springboot中的Controller解析

    这篇文章主要介绍了Springboot中的Controller解析,Controller是SpringBoot的基本组件,也是MVC结构的组成部分,其作用是将用户提交来的请求通过URL匹配,分发给不同的接收器,该接收器会对其进行相应处理,然后返回处理结果,需要的朋友可以参考下
    2023-09-09
  • java代码获取UUID的实现示例

    java代码获取UUID的实现示例

    本文主要介绍了java代码获取UUID的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • SpringBoot3.x版本与Mybatis-Plus不兼容问题

    SpringBoot3.x版本与Mybatis-Plus不兼容问题

    当使用3.x版本的SpringBoot结合Mybatis-Plus时版本不兼容就会报错,本文就来介绍一下这个问题的解决方法,感兴趣的可以了解一下
    2024-03-03
  • Java实现一个达达租车系统的步骤详解

    Java实现一个达达租车系统的步骤详解

    这篇文章主要给大家介绍了利用Java实现一个达达租车系统的步骤,文中给出了详细的实现思路和示例代码,并在文末给出了完整的源码供大家学习下载,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-04-04
  • SpringMVC请求的路径变量里面写正则表达式的方法

    SpringMVC请求的路径变量里面写正则表达式的方法

    这篇文章主要介绍了SpringMVC请求的路径变量里面写正则表达式的相关知识,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • MyBatis环境资源配置实现代码详解

    MyBatis环境资源配置实现代码详解

    这篇文章主要介绍了MyBatis环境资源配置实现代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08

最新评论