• 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实现的更多相关文章

  1. P1328_生活大爆炸版石头剪刀布(JAVA语言)

    题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一 样,则不分胜负.在<生活大爆炸>第二季第8集中出现了一种石头剪刀布的升级版游戏. 升级版游戏在传统的 ...

  2. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  3. JAVA取随机数,石头剪刀布实例

    一.取随机数: import java.util.Random; //导入随机数 public class Test{ public static void main(String[] args){ ...

  4. 从零开始学java(小游戏 石头剪刀布)

    Game.java package com.java;import java.util.Scanner;public class Game {        private Player player ...

  5. 石头剪刀布的JAVA小程序 供初学者参考

    package youxi; public class Player { private String name; private double score; public Player(String ...

  6. Java石头剪刀布小游戏

    package com.neusoft.test; import java.awt.BorderLayout; import java.awt.Choice; import java.awt.Colo ...

  7. Java实现 洛谷 P1328 生活大爆炸版石头剪刀布

    import java.util.Scanner; public class Main{ private static int[] duel(int playerA, int playerB){ in ...

  8. Java纸牌小demo以及日历小demo

    //卡牌类 public class Card { //定义卡牌的点数 public static final String[] cardName = { "3", "4 ...

  9. 猜拳游戏三局两胜------java实现代码

    package com.javasm.exerices02; import java.util.ArrayList; import java.util.List; import java.util.R ...

随机推荐

  1. Java读properties文件中文乱码问题的解决方法

    java读properties文件,包含中文字符的主要有两种: 1.key中包含中文字符的(value中也有可能包含) 2.key中不包含中文字符的(value中有可能包含) 1.key中包含中文字符 ...

  2. ubuntu14.04 Samba服务无法访问 可能没有权限 指定的网络名不再可用的问题

    按常规配置后,在windows资源管理器中登陆samba服务器,看得到分享目录却无法打开,弹出"无法访问.您可能没有权限使用网络资源,请与这台服务器的管理员联系以查明您是否有访问权限.指定的 ...

  3. 2018.10.15 bzoj4570: [Scoi2016]妖怪(凸包)

    传送门 不得不说这题有点东西啊. 看到题第一眼二分,用二次函数求范围来进行checkcheckcheck,20分滚粗了233. 于是开始思考正解. 发现可以把每只怪物的二元组属性看成二维坐标. 这时对 ...

  4. 2018.09.18 atcoder Many Formulas(搜索)

    传送门 感觉自己搜索能力退化了,这种弱智搜索写了整整5min,这样下去比赛会凉的. 看来得多练练题了. 代码: #include<bits/stdc++.h> #define ll lon ...

  5. 2018.08.30 游戏(概率dp)

    题目描述 Alice 和 Bob 两个人正在玩一个游戏,游戏有很多种任务,难度为 p 的任务(p是正整数),有 1/(2^p) 的概率完成并得到 2^(p-1) 分,如果完成不了,得 0 分.一开始每 ...

  6. 2018.08.28 洛谷P4556 [Vani有约会]雨天的尾巴(树上差分+线段树合并)

    传送门 要求维护每个点上出现次数最多的颜色. 对于每次修改,我们用树上差分的思想,然后线段树合并统计答案就行了. 注意颜色很大需要离散化. 代码: #include<bits/stdc++.h& ...

  7. 2018.07.08 hdu4521 小明系列问题——小明序列(线段树+简单dp)

    小明系列问题--小明序列 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Proble ...

  8. Criteria查询

    1.Criteria表达式 Criteria c=session.createCriteria(User.class); List result=c.list(); Iterator it=resul ...

  9. 百度Webuploader 大文件分片上传(.net接收)

    版权所有 2009-2018荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webapp/up6.2/in ...

  10. Hdu1896 Stones(优先队列) 2017-01-17 13:07 40人阅读 评论(0) 收藏

    Stones Time Limit : 5000/3000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submis ...