用java语言编写石头剪刀布获胜法_石头剪刀布Java实现
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实现相关推荐
- 实现石头剪刀布获胜法_用java实现一个猜拳小游戏
本文实例为大家分享了java实现猜拳小游戏的具体代码,供大家参考,具体内容如下 项目名称 猜拳小游戏 项目描述 玩家与电脑进行猜拳游戏,玩家行为采用输入方式,电脑行为采用随机形式. 实现: User类 ...
- jdbc是java语言编写的类和接口_JDBC——Java语言连接数据库的标准
JDBC概述 API JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Jav ...
- java语言中声明布尔型_【Java初探02】——Java语言基础
本篇博文就Java语言的一些基本元素进行一些记录和阐述,主要讲解一下Java语言的一些基本构成元素和Java的主类结构. Java语言基础的大致组成 java主类结构 基本的数据类型 变量与常量 运算 ...
- 用java语言编写的操作系统属于_为什么操作系统不是用java编写的?
因为我们已经拥有操作系统,主要是. Java并不是设计用于在裸机上运行,但这并不像最初看起来那么大.由于C编译器提供了编译为特定指令的内部函数,因此Java编译器(或JIT,在此上下文中区别没有意 ...
- python做图片石头剪刀布获胜法_一个python石头剪刀布送给大家
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import time import random import easygui while True : a=easygui.enterbox(&quo ...
- java导出excel 科学计数法_基于Java将Excel科学计数法解析成数字
需要注意的是一般的科学表达式是 1.8E12 1.8E-12 而在Excel中的科学表达式是 1.8E+12 1.8E-12 我写的科学计数法的正则表达式是 (-?\d+\.?\d*)[Ee]{1}[ ...
- java语言中类定义数组赋值_在Java语言中,下列对于字符数组的定义并赋值正确的是(选一项)_学小易找答案...
[单选题]<茶花女--饮酒歌>这段音乐属于级进还是跳进的旋律? <茶花女-饮酒歌>.mp4 [简答题] [单选题]对外汉语教学中以系统讲授语言知识的一类课型,包括语音.词汇.语 ...
- java语言如何跳转界面_在java中spring mvc页面如何跳转,详细图解
众所周知,java编程语言的应用在当今社会必不可少,它是当下人们提升自己充实自身的重要选择.所以,今天主要来为大家介绍java的入门知识,在 java中spring mvc页面如何跳转,通过详细的图片 ...
- java如何编写屏幕保护程序_将Java App转换为Windows屏幕保护程序
小编典典 Windows屏幕保护程序只是接受某些命令行参数的程序.因此,为了使您的程序可以作为屏幕保护程序运行,您必须对其进行编码以接受这些参数. 接下来,您可能希望屏幕保护程序以全屏模式运行.这在J ...
最新文章
- 实战:使用OpenCV+Python+dlib为人脸生成口罩
- rdesktop 登录腾讯云
- c#保存数据格式为.cvs_C#读取csv格式文件的方法
- 5G 如何改写高铁 Wi-Fi?
- LinkedList和 ArrayList的大数据面试资料(面试题)
- 设置指定打印机端口打印
- c++ 17 std::variant
- w3school在线学习教程 http://www.w3school.com.cn/
- 全国青少年软件编程等级考试标准Python(1-6级)
- 2022年MSI赛程安排时间表 MSI赛事规则
- python 协程加多线程下载asyncio、ThreadPoolExecutor
- Failed to execute goal org.apache.maven.pluginsmaven-install-plugin2.5.2install (default-cli) 的
- 高度自律学习者的app
- 各国iPhone5系列最新裸机价格
- 视频教程-游戏网络编程必备知识-Unity3D
- Android Binder机制学习总结(二)-Driver部分
- Spyder 错误:error: (-215:Assertion failed) dst.data = src.data in function ‘cv::undistort‘
- 如何使用Excel表格导入数据批量开票
- 2019计算机考研心得
- Python计算限制性核酸内切酶切割后的核酸片段及其片段分子量
热门文章
- Go语言的变量、函数、Socks5代理服务器
- 第四章 基本TCP套接字编程 第五章 TCP客户/服务器程序实例
- Redis的安装及原理介绍
- iOS 7.1下itms-services在线安装失败的解决方法
- 每天看技术文章头大,搞点笑话轻松一下吧
- ztree在onCheck()方法中防止因触发联动关系导致页面多次渲染而卡死的问题
- Navicat 用ssh通道连接时总是报错 (报错信息:SSH:expected key exchange group packet form serve...
- JavaScript(一)js简单介绍
- 第二次冲刺-站立会议06
- 超级简单的jQuery纯手写五星评分效果