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实现猜拳小游戏的具体代码,供大家参考,具体内容如下 项目名称 猜拳小游戏 项目描述 玩家与电脑进行猜拳游戏,玩家行为采用输入方式,电脑行为采用随机形式. 实现: User类 ...

  2. jdbc是java语言编写的类和接口_JDBC——Java语言连接数据库的标准

    JDBC概述 API JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Jav ...

  3. java语言中声明布尔型_【Java初探02】——Java语言基础

    本篇博文就Java语言的一些基本元素进行一些记录和阐述,主要讲解一下Java语言的一些基本构成元素和Java的主类结构. Java语言基础的大致组成 java主类结构 基本的数据类型 变量与常量 运算 ...

  4. 用java语言编写的操作系统属于_为什么操作系统不是用java编写的?

    因为我们已经拥有操作系统,主要是. Java并不是设计用于在裸机上运行,​​但这并不像最初看起来那么大.由于C编译器提供了编译为特定指令的内部函数,因此Java编译器(或JIT,在此上下文中区别没有意 ...

  5. python做图片石头剪刀布获胜法_一个python石头剪刀布送给大家

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import time import random import easygui while True : a=easygui.enterbox(&quo ...

  6. java导出excel 科学计数法_基于Java将Excel科学计数法解析成数字

    需要注意的是一般的科学表达式是 1.8E12 1.8E-12 而在Excel中的科学表达式是 1.8E+12 1.8E-12 我写的科学计数法的正则表达式是 (-?\d+\.?\d*)[Ee]{1}[ ...

  7. java语言中类定义数组赋值_在Java语言中,下列对于字符数组的定义并赋值正确的是(选一项)_学小易找答案...

    [单选题]<茶花女--饮酒歌>这段音乐属于级进还是跳进的旋律? <茶花女-饮酒歌>.mp4 [简答题] [单选题]对外汉语教学中以系统讲授语言知识的一类课型,包括语音.词汇.语 ...

  8. java语言如何跳转界面_在java中spring mvc页面如何跳转,详细图解

    众所周知,java编程语言的应用在当今社会必不可少,它是当下人们提升自己充实自身的重要选择.所以,今天主要来为大家介绍java的入门知识,在 java中spring mvc页面如何跳转,通过详细的图片 ...

  9. java如何编写屏幕保护程序_将Java App转换为Windows屏幕保护程序

    小编典典 Windows屏幕保护程序只是接受某些命令行参数的程序.因此,为了使您的程序可以作为屏幕保护程序运行,您必须对其进行编码以接受这些参数. 接下来,您可能希望屏幕保护程序以全屏模式运行.这在J ...

最新文章

  1. 实战:使用OpenCV+Python+dlib为人脸生成口罩
  2. rdesktop 登录腾讯云
  3. c#保存数据格式为.cvs_C#读取csv格式文件的方法
  4. 5G 如何改写高铁 Wi-Fi?
  5. LinkedList和 ArrayList的大数据面试资料(面试题)
  6. 设置指定打印机端口打印
  7. c++ 17 std::variant
  8. w3school在线学习教程 http://www.w3school.com.cn/
  9. 全国青少年软件编程等级考试标准Python(1-6级)
  10. 2022年MSI赛程安排时间表 MSI赛事规则
  11. python 协程加多线程下载asyncio、ThreadPoolExecutor
  12. Failed to execute goal org.apache.maven.pluginsmaven-install-plugin2.5.2install (default-cli) 的
  13. 高度自律学习者的app
  14. 各国iPhone5系列最新裸机价格
  15. 视频教程-游戏网络编程必备知识-Unity3D
  16. Android Binder机制学习总结(二)-Driver部分
  17. Spyder 错误:error: (-215:Assertion failed) dst.data = src.data in function ‘cv::undistort‘
  18. 如何使用Excel表格导入数据批量开票
  19. 2019计算机考研心得
  20. Python计算限制性核酸内切酶切割后的核酸片段及其片段分子量

热门文章

  1. Go语言的变量、函数、Socks5代理服务器
  2. 第四章 基本TCP套接字编程 第五章 TCP客户/服务器程序实例
  3. Redis的安装及原理介绍
  4. iOS 7.1下itms-services在线安装失败的解决方法
  5. 每天看技术文章头大,搞点笑话轻松一下吧
  6. ztree在onCheck()方法中防止因触发联动关系导致页面多次渲染而卡死的问题
  7. Navicat 用ssh通道连接时总是报错 (报错信息:SSH:expected key exchange group packet form serve...
  8. JavaScript(一)js简单介绍
  9. 第二次冲刺-站立会议06
  10. 超级简单的jQuery纯手写五星评分效果