/**
* @Author hty
* @Date 2019-12-16 16:39
* @Version 1.0
*/
import java.util.Random; // 比赛结果
enum OutCom {
WIN,
LOSE,
DRAW,
} enum RoShaBo {
PAPER(OutCom.DRAW, OutCom.LOSE, OutCom.WIN),
SCISSORS(OutCom.WIN, OutCom.DRAW, OutCom.LOSE),
ROCK(OutCom.LOSE, OutCom.WIN, OutCom.DRAW); public OutCom withPaper;
public OutCom withScissors;
public OutCom withRock; RoShaBo(OutCom withPaper, OutCom withScissors, OutCom withRock) {
this.withPaper = withPaper;
this.withScissors = withScissors;
this.withRock = withRock;
} public OutCom compet(RoShaBo item) {
switch(item){
case PAPER:
return withPaper;
case SCISSORS:
return withScissors;
case ROCK:
return withRock;
default:
return null;
}
}
} class RoShaBoRunner {
private static final Random random = new Random(); public static void pay(int rounds) {
for (int i = 0; i < rounds; i++) {
RoShaBoRunner.vs(randomOne(),randomOne());
}
} private static void vs(RoShaBo it1, RoShaBo it2) {
System.out.println(String.format("%s VS %s: %s", it1.name(), it2.name(), it1.compet(it2).name()));
} private static RoShaBo randomOne() {
int nextInt = random.nextInt(3);
switch(nextInt) {
case 0:
return RoShaBo.PAPER;
case 1:
return RoShaBo.SCISSORS;
case 2:
return RoShaBo.ROCK;
default:
return null;
}
} public static void main(String[] args) {
pay(60);
}
} // 输出结果
ROCK VS ROCK: DRAW
ROCK VS PAPER: LOSE
PAPER VS PAPER: DRAW
PAPER VS ROCK: WIN
SCISSORS VS SCISSORS: DRAW
ROCK VS SCISSORS: WIN
SCISSORS VS ROCK: LOSE
SCISSORS VS PAPER: WIN
PAPER VS PAPER: DRAW
...

Java的多路分支代码,感觉有点意思的更多相关文章

  1. Java开发笔记(十七)各得其所的多路分支

    前面提到条件语句的标准格式为“if (条件) { /* 条件成立时的操作代码 */ } else { /* 条件不成立时的操作代码 */ }”,乍看之下仿佛只有两个分支,一个是条件成立时的分支,另一个 ...

  2. 如何在Java中调用Python代码

    有时候,我们会碰到这样的问题:与A同学合作写代码,A同学只会写Python,而不会Java, 而你只会写Java并不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方设法“调 ...

  3. JAVA中执行JavaScript代码并获取返回值

    JAVA中执行JavaScript代码并获取返回值 场景描述 实现思路 技术要点 代码实现 测试方法 运行结果 改进空间 场景描述 今天在CSDN上偶然看到一个帖子对于一段字符串 “var p=‘xx ...

  4. 在Java中调用Python代码

    极少数时候,我们会碰到类似这样的问题:与A同学合作写代码, A同学只会写Python,不熟悉Java ,而你只会写Java不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方 ...

  5. (转载)JAVA动态编译--字节代码的操纵

    在一般的Java应用开发过程中,开发人员使用Java的方式比较简单.打开惯用的IDE,编写Java源代码,再利用IDE提供的功能直接运行Java 程序就可以了.这种开发模式背后的过程是:开发人员编写的 ...

  6. merge 本地 master 分支代码提示 “Already up-to-date”

    在使用 git 的过程中由于误操作,导致从本地 master 分支 merge 代码到当前分支失败,虽然当前分支和 master 分支代码不同步,但是仍然提示 Already up-to-date. ...

  7. 转:java怎么用一行代码初始化ArrayList

    java怎么用一行代码初始化ArrayList 您可以创建一个工厂方法: public static ArrayList<String> createArrayList(String .. ...

  8. java中的静态代码块、构造代码块、构造方法

    运行下面这段代码,观察其结果: package com.test; public class HelloB extends HelloA { public HelloB() { } { System. ...

  9. 在Java中执行js代码

    在某些特定场景下,我们需要用Java来执行Js代码(如模拟登录时,密码被JS加密了的情况),操作如下: ScriptEngineManager mgr = new ScriptEngineManage ...

随机推荐

  1. css层叠规则(层叠样式表)

    CSS层叠规则: 1.找出所有相关的规则,这些规则都包含与一个给定元素匹配的选择器. 2.按权重(!important)和来源对应用到给定元素的所有声明进行排序. 3.按特殊性对应用到给定元素的所有声 ...

  2. i春秋——“百度杯”CTF比赛 十月场——Vld(Vulcan Logic Dumper 、php opcode、sql 报错注入)

    打开题目看到提示 "do you know Vulcan Logic Dumper?" ,再查看源码看到"<!-- index.php.txt ?>" ...

  3. cpio建立、还原备份档

    1. 简介 加入.解开cpio或tar备份档内的文件 与tar相似,将文件归档到硬盘或磁带等存储设备中 2. tar比较 在所处理的文件类型方面,它比tar更全面,但也更复杂 cpio比tar更为可靠 ...

  4. SpingMVC流程图

    Struts的请求流程 springmvc的流程 0.struts2       MVC框架  Controller  Hibernate     持久化框架   Model  spring      ...

  5. Nginx 高级配置-状态页配置

    Nginx 高级配置-状态页配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 建议将nginx的监控状态的值通过zabbix或者Open-Falcon之类的监控工具来监控状态,并 ...

  6. 接口自动化--数据驱动(ddt)

    上次我们提到了unittest单元测试框架,运用单元测试框架unittest进行编写测试用例 但是遇到了一个问题,就是难道我一个测试点中有多个测试用例,我要每一个都要去编写一条测试用例嘛?这实在是太复 ...

  7. Android Studio总结

    课程背景 相信大家对Android Studio已经不陌生了,Android Studio是Google于2013 I/O大会针对Android开发推出的新的开发工具,目前很多开源项目都已经在采用,G ...

  8. tf.gather_nd()

    tf.gather_nd( params, indices, name=None, batch_dims=0) TensorFlow链接:https://tensorflow.google.cn/ap ...

  9. dedecms手机站和PC站共用同一数据库的方法

    我们知道搜索引擎建议将手机站和PC站分开,虽然自适应可以适配不同的终端,但单独建独立的m站可能权重和排名更好,因为移动端的竞争度不同甚至更低.代码更精简.蜘蛛抓取更顺畅,所以要单独建手机站比较好.那么 ...

  10. hive使用beeline配置远程连接

    hive以hadoop集群为基础,提供hdfs的SQL支持: hive一般可以以mysql为元数据存储,默认Derby:hadoop,hive安装自行百度吧: 介绍hive的远程访问: 未配置之前使用 ...