java实现简单石头剪刀布小游戏
作者:凉皮! 发布时间:2021-09-17 07:25:41
标签: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游戏结束:
来源:https://blog.csdn.net/qq_45583486/article/details/122316978


猜你喜欢
- 为Repository添加自定义方法一、为某个Repository添加自定义方法1、定义一个接口PersonDao,声明要添加的方法。pub
- 本文所述为C#实现根据指定容器和控件名字获得控件的方法,在进行C#应用程序设计时有一定的借鉴价值。分享给大家供大家参考借鉴。具体实现方法如下
- 过滤器实现过滤器需要实现 javax.servlet.Filter 接口。重写三个方法。其中 init() 方法在服务启动时执行,destr
- 实现了一个有趣的小东西:使用自定义View绘图,一边画线,画出的线条渐渐变淡,直到消失。效果如下图所示:用属性动画或者渐变填充(Shader
- 沉浸式状态栏是Android4.4即api19以上才支持的特性,分两步实现:1.在布局文件中第一个控件(一般是imageview或者text
- 项目场景Spring 的 RestTemplate 是一个健壮的、流行的基于 Java 的 Http客户端。RestTemplate实现re
- 一、设置Jackson序列化时只包含不为空的字段new ObjectMapper().setSerializationInclusion(I
- 先建个钉钉群,并加好机器人此时,机器人已经添加完毕,接下来编写我们连接机器人小哥的代码import com.alibaba.fastjson
- 随着Android设备增多,不少网站都开始设备Android设备,而Android主流设备类型以手机和平板为主。网站在适配时通过User A
- Android 切圆图效果图如下:MyView 类public class MyView extends View {Bitmap bmp;
- 遇到一个@ConditionalOnMissingBean失效的问题,今天花点时间来分析一下。现场回放services首先介绍下代码结构:有
- 1. 准备工作首先我们创建一个 Spring Boot 工程,引入 Web 和 Redis 依赖,同时考虑到接口限流一般是通过注解来标记,而
- 标题index界面加载问题刚开始学习springBoot记录一下遇到的小问题1.index.html加载不出来的问题我习惯性的将index.
- 1.问题描述汉诺塔问题是一个经典的问题。汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。大梵天创造世界的时候做了三根金刚
- 前面博客我们在讲解数组中,知道数组作为数据存储结构有一定的缺陷。在无序数组中,搜索性能差,在有序数组中,插入效率又很低,而且这两种数组的删除
- Android版本更新实例详解1、导入xutils的jar包 2、在AndroidManifest.xml中添加权限 3、选择下载的路径,和
- 前言之前写过一篇介绍flutter集成到Android工程的文章,这次总结记录一下自己把flutter集成到iOS的流程,以及遇到的问题以及
- 容器适配器我们可以看出,栈中没有空间配置器(内存池),而是适配器适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目
- 前言spring中解析元素最重要的一个对象应该就属于 BeanDefinition了;这个Spring容器中最基本的内部数据结构;它让xml
- 本文实例讲述了Android编程实现等比例显示图片的方法。分享给大家供大家参考,具体如下:在android中,由于密度的影响,如果想得到图片