石头剪刀布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实现的更多相关文章
- P1328_生活大爆炸版石头剪刀布(JAVA语言)
题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一 样,则不分胜负.在<生活大爆炸>第二季第8集中出现了一种石头剪刀布的升级版游戏. 升级版游戏在传统的 ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- JAVA取随机数,石头剪刀布实例
一.取随机数: import java.util.Random; //导入随机数 public class Test{ public static void main(String[] args){ ...
- 从零开始学java(小游戏 石头剪刀布)
Game.java package com.java;import java.util.Scanner;public class Game { private Player player ...
- 石头剪刀布的JAVA小程序 供初学者参考
package youxi; public class Player { private String name; private double score; public Player(String ...
- Java石头剪刀布小游戏
package com.neusoft.test; import java.awt.BorderLayout; import java.awt.Choice; import java.awt.Colo ...
- Java实现 洛谷 P1328 生活大爆炸版石头剪刀布
import java.util.Scanner; public class Main{ private static int[] duel(int playerA, int playerB){ in ...
- Java纸牌小demo以及日历小demo
//卡牌类 public class Card { //定义卡牌的点数 public static final String[] cardName = { "3", "4 ...
- 猜拳游戏三局两胜------java实现代码
package com.javasm.exerices02; import java.util.ArrayList; import java.util.List; import java.util.R ...
随机推荐
- MySQL相关知识总结
1. 显示所有表 show tables; 还有information_schema数据库里面有tables表,记录了所有表信息 use information_schema; select * fr ...
- shift + 空格 快捷键 使输入法 在全角和半角直接切换。。 但是全角输入一个 空格 ,会造成jsp页面 无法正常解析。。比如 无法获得参数。。
shift + 空格 快捷键 使输入法 在全角和半角直接切换.. 但是全角输入一个 空格 ,会造成jsp页面 无法正常解析....比如 无法获得参数.. 如 <form action=" ...
- windows10 装linux子系统
http://blog.csdn.net/Yuxin_Liu/article/details/52347898 试了一下,下载太慢,就没继续用,可以用实验楼这个网来玩玩linux
- Ckeditor上传图片返回的JS直接显示出来,未执行!!!
Ckeditor上传图片网上有很多教程. 下面是我今天下午遇到的一个坑...自己挖的坑. 在conotroller里 我开始习惯性的 response.setContentType("app ...
- 2018.10.20 bzoj2748: [HAOI2012]音量调节(背包)
传送门 这题是不是太sbsbsb了一点. 难度直逼普及-. 直接背包判存在性就行了. 代码: #include<bits/stdc++.h> using namespace std; bo ...
- 2018.07.25 bzoj2125: 最短路(圆方树+倍增)
传送门 人生的第一道仙人掌. 这道题求是仙人掌上的最短路. 先建出圆方树,然后用倍增跑最短路,当lca" role="presentation" style=" ...
- Part 3 - Advanced Concepts(11-13)
https://simpleisbetterthancomplex.com/series/2017/09/18/a-complete-beginners-guide-to-django-part-3. ...
- 多块盘制作成一个lvm
1.创建pv[root@autodeploy nfs]# pvcreate /dev/vdd1WARNING: xfs signature detected on /dev/vdd1 at offse ...
- springboot问题,没有主清单属性
在pom.xml中添加 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins< ...
- js splice方法
处理数组的方法很多,javascript splice()算是最强大的了,它可以用于插入.删除或替换数组的元素.下面来一一介绍! 1.删除-用于删除元素,两个参数,第一个参数(要删除第一项的位置),第 ...