java实现石头剪刀布过程

首先来看石头剪刀布的所有可能情况,具体如下图

第一种思路是穷举所有可能,使用if条件语句,略显呆板和麻烦。

第二种思路,因为计算机存的是数字,所以我们可以从数字角度来找规律:

在这里我们用

0代表石头;

1代表剪刀;

2代表布;

那我们的猜拳游戏可以变为比较两个变量A和B:

变量A和B相等时,平局。

如果用B+1除以3得到的余数与变量A相等,则玩家B获胜

其余情况都是A获胜

代码实现如下

分为玩家类和裁判类:

玩家:

/*

* 玩家

*/

public class Player {

private String name;

public Player(String name) {

this.name = name;

}

public Player() {

}

//出拳

public int getHand() {

//Math.random() -- 返回0和1之间的伪随机数 可能为0,但总是小于1,[0,1)

int i = (int)(Math.random() * 3);

if(i == 0) {

System.out.println(this.toString() + "出石头");

}

if(i == 1) {

System.out.println(this.toString() + "出剪刀");

}

if(i == 2) {

System.out.println(this.toString() + "出布");

}

return i;

}

@Override

public String toString() {

// TODO Auto-generated method stub

return "玩家" + this.name;

}

public static void main(String[] args) {

Player player = new Player("A");

System.out.println(player.getHand());

}

}

裁判:

/*

* 裁判

*/

public class Judge {

//判断胜负

public void getWinner(int a, int b) {

if(a == b) {

System.out.println("平局");

} else if((b + 1) % 3 == a) {

System.out.println("B获胜");

} else {

System.out.println("A获胜");

}

}

}

游戏测试:

public class Test {

//测试

public static void main(String[] args) {

Player player1 = new Player("A");

Player player2 = new Player("B");

Judge judge = new Judge();

System.out.println("猜拳开始");

judge.getWinner(player1.getHand(), player2.getHand());

}

}

结果展示:

总结

以上就是石头剪刀布游戏的粗略模拟,思路主要还是尽量站在计算机角度去思考,计算机的任何数据都是以数字存储。

java石头剪刀布思路_石头剪刀布Java实现相关推荐

  1. 推箱子游戏的java设计思路_用JAVA实现一个推箱子游戏

    技术应用 TECHNOLOGY AND MARKET Vol. 26,No. 2,2019 用 JAVA 实现一个推箱子游戏 马寅璞1,孔阳坤2 ( 1. 南京信息工程大学计算机软件学院物联网工程 1 ...

  2. java开发思路_学习Java的思路

    学习的思路 1.心里思路----任何事情都很简单 只是你暂时不懂得方法当你懂得了方法再复杂的问题都会变的非常简单因为任何一个复杂的问题都是由很多简单的问题组合成的.学习任何知识都是这样当你觉得它容易 ...

  3. java 分割一个_分割java

    [java]分割字符串工具类,霸气 jdk自带的 java 分割字符串,分割string,可以根据多个条件去分割.比如逗号,分号,逗号或者分号. 比如一个字符串:"abc,def;gh,ij ...

  4. java武功秘籍_请问java全套内容都有什么呢?

    我整理的Java全套内容学习路线,分为6个阶段(大阶段)第一阶段:java内功心法篇 第二阶段:Java武功秘籍(经典框架) 第三阶段:Java高级功法(主流框架) 第四阶段:Java成神之路 第五阶 ...

  5. java正则表达式 匹配()_学习Java正则表达式(匹配、替换、查找)

    import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; public c ...

  6. 纯java分布式内存数据库_最新Java岗面试清单:分布式+Dubbo+线程+Redis+数据库+JVM+并发...

    最近可能有点闲的慌,没事就去找面试面经,整理了一波面试题.我大概是分成了Java基础.中级.高级,分布式,Spring架构,多线程,网络,MySQL,Redis缓存,JVM相关,调优,设计模式,算法与 ...

  7. java进度条_自学java你需要知道的,适合编程小白

    1. java学习网站 之前在很多学习网站上学习过Java,踩过很多坑,今天给大家推荐一个比较好用的Java学习网站,希望大家能少踩坑 Java教程 | 项目实践一站式java学习 这个网站的针对性强 ...

  8. 学JAVA的诗句_学Java有感(终)

    大一的下半学期逐渐步入尾声,我的Java学习也以告一段落.经过一个学期的学习,不能说是融会贯通,但也算小有心得.下面就来谈谈我对这个学期Java学习的感受吧! 在大一的上半学期,我接触到了一个计算机语 ...

  9. java核心教程_核心Java教程

    java核心教程 Welcome to Core Java Tutorial. I have written a lot on Core Java and Java EE frameworks. Th ...

最新文章

  1. 机器学习进阶-图像形态学操作-腐蚀操作 1.cv2.erode(进行腐蚀操作)
  2. 《C++代码设计与重用》——1.2 重用的神话
  3. FVR420v试用感受之六!
  4. web设计页面跳转的方法
  5. 14.8.4 Moving or Copying InnoDB Tables to Another Machine 移动或者拷贝 InnoDB 表到另外机器...
  6. 基于epoll实现简单的web服务器
  7. C# 时间函数(几个常用时间,程序运行计时,页面运行计时)
  8. 2023届春招实习拉钩一面凉经
  9. Android Studio小技巧
  10. sql2012 数据库连接错误
  11. shell编写一键安装mysql.sh
  12. 一条拼了40min的hql引发的思考
  13. linux i3 桌面,Linux安装i3wm平铺式窗口桌面
  14. pom文件中配置阿里远程仓库
  15. USB SERVER网络远程管理U盾
  16. Python3 安装cx_Oracle 指导手册
  17. 不限专业和工作年限就能报考的证书有哪些?
  18. mysql通过股票代码查数据_如何在交易数据中查询各个版本交易量前三的股票?(MySQL分组排名)...
  19. python图像去污_图像去雾毕业论文准备02-python中os标准库
  20. JAVA 根据模板生成doc文件

热门文章

  1. margin 外边距合并问题
  2. 用 js 开启本地服务器,实现短信发送
  3. linux 重定向 2 gt gt,Linux命令- echo、grep 、重定向、1gt;amp;2、2gt;amp;1的介绍
  4. vue-baidu-map使用setMapStyleV2自定义样式
  5. 【猿说VUE】Vue过滤器使用介绍(劳动节致敬)
  6. K8S学习笔记之将Google的gcr.io、k8s.gcr.io 换为国内镜像
  7. 推荐一些学习嵌入式经典的书籍
  8. 机器视觉的9大快速开发库简单介绍
  9. 53页PPT | 湖仓一体大数据平台解决方案
  10. 计算机能使用硬盘吗,旧电脑的硬盘能直接插在新电脑上用吗?