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
0
投稿
猜你喜欢
- IntelliJ IDEA中实现跟eclipse一样的outline方法,查看文件内所有已经声明的方法。mac的可以在key map 里搜索
- 1.alibaba falstjson1.Map转JSONMap<String, Object> map = new HashM
- 一、前言最近接到一个任务,需要爬取五级行政区划的所有数据(大概71万条数据在),需要爬取的网站:行政区划 - 行政区划代码查询 发
- 为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 Output
- 1、获取视频缩略图有两个方法(1)通过内容提供器来获取(2)人为创建缩略图(1)缺点就是必须更新媒体库才能看到最新的视频的缩略图[java]
- /** * 进行BigDecimal对象的加减乘除,四舍五入等运算的工具类 * * @author Marydon * @createTi
- springboot配置文件中属性变量引用@@这种属性应用方式是field_name=@field_value@。两个@符号是springb
- 本文实例为大家分享了java GUI学生图书管理的具体代码,供大家参考,具体内容如下- mysql数据库建表:1.book表 2.bs借书记
- 项目需要去调用.NET的WebSrevice,本身是Java,研究了半天,终于有些头绪,记下来。1,新建.NET WebService。只在
- 工作中一直都是一个人奋战一人一个项目,使用maven管理,看这个也挺好,但是总感觉没有充分发挥maven的功能,于是研究了一下这个,网上关于
- 什么是冒泡排序冒泡排序指重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从小到大)错误就把他们交换过来。走访元素的工作是重复
- java语言里包含了许多对设计模式的直接支持,如command模式,agent模式,observer模式等。虽然java提供的对
- 一、背景spring-data-mongo 实现了基于 MongoDB 的 ORM-Mapping 能力,通过一些简单的注解、Query封装
- 不废话了,直接给大家贴代码了。class term { String str; int id; &
- 1.docker安装seata 1.3.0镜像docker pull seataio/seata-server:1.3.02.运行容器获取配
- 在平常工作中我们经常会遇到maven引用的jar包冲突的事情,这时候我们就需要找出冲突的包,并将低版本或者缺少某些方法的jar给剔除掉。这个
- 在使用fastJson时,对于泛型的反序列化很多场景下都会使用到TypeReference,例如:void testTypeReferenc
- 本文实例为大家分享了Java操作qq邮箱发送邮件的具体代码,供大家参考,具体内容如下今天尝试了使用QQ邮箱的POP3/IMAP/SMTP/E
- 在没介绍正文之前,先给大家介绍下websocket的背景和原理:背景在浏览器中通过http仅能实现单向的通信,comet可以一定程度上模拟双
- 在java项目开发过程中,使用properties文件作为配置基本上是必不可少的,很多如系统配置信息,文件上传配置信息等等都是以这种方式进行