java实现简单石头剪刀布游戏
作者:MTing•cat 发布时间:2023-07-20 05:31:37
标签:java,石头剪刀布
本文实例为大家分享了java实现简单石头剪刀布游戏的具体代码,供大家参考,具体内容如下
问题描述
Alice, Bob和Cindy一起玩猜拳的游戏。和两个人的猜拳类似,每一轮,他们会从石头、剪刀、布中各自选一个出拳,基本的胜负规则是石头赢剪刀、剪刀赢布、布赢石头。如果一轮中正好可以分成胜负两边,则负边的每个人要支付给胜边的每个人一块钱。如果无法分成胜负两边,则都不出钱。比如,如果Alice出石头,而Bob和Cindy都出布,则Alice要分支付Bob和Cindy一块钱。再如,如果Alice出石头, Bob出剪刀, Cindy出布,则都不出钱。他们三人共进行了n轮游戏,请问最后每个人净赚多少钱?即赚的钱减去支付的钱是多少?
代码
package Ring1270.pra.java01;
import java.util.Scanner;
/**
* finger-guessing game: * n:number of games * A: Person A's money * B: Person B's money * C: Person C's money * 0: Stand for stone * 1: Stand for Scissor * 2: Stand for cloth * rule1: Two persons give the same result means game over * Rule2: The money add 1 everytime which win * Rule3:The money less 1 everytime which fail * */public class D_FingerGuessingGame {
public static void main(String[] args) {
int A = 0;
int B = 0;
int C = 0;
Scanner scanner = new Scanner(System.in);
System.out.printf("The number of game:");
int n = scanner.nextInt();
StringBuffer stringBuffer = new StringBuffer();
for (int i = 0; i <= n; i++) {
String s = scanner.nextLine();
char[] D = s.toCharArray();
for (int j = 0; j < D.length; j++) {
//A and B success
if (D[0] == D[1] && D[0] != D[2]) {
if ('0' == D[0] && '1' == D[2]) {
A++;
B++;
C -= 2;
}
else if ('1' == D[0] && '2' == D[2]) {
A++;
B++;
C -= 2;
}
else if ('2' == D[0] && '0' == D[2]) {
A++;
B++;
C -= 2;
}else {
A--;
B--;
C += 2;
}
}
// A and C success
if (D[0] == D[2] && D[0] != D[1]) {
if ('0' == D[0] && '1' == D[1]) {
A++;
B -= 2;
C++;
}
else if ('1' == D[0] && '2' == D[1]) {
A++;
B -= 2;
C++;
}
else if ('2' == D[0] && '0' == D[1]) {
A++;
B -= 2;
C++;
}else {
A--;
B += 2;
C--;
}
}
// C and B success
if (D[1] == D[2] && D[1] != D[0]) {
if ('0' == D[1] && '1' == D[0]) {
A -= 2;
B++;
C++;
}
else if ('1' == D[1] && '2' == D[0]) {
A -= 2;
B++;
C++;
}
else if ('2' == D[1] && '0' == D[0]) {
A -= 2;
B++;
C++;
}
else {
A += 2;
B--;
C--;
}
}
break;
}
}
System.out.println(A);
System.out.println(B);
System.out.println(C);
}
}
运行截图
来源:https://blog.csdn.net/weixin_43388956/article/details/113938103


猜你喜欢
- MyBatis-Plus是通过version机制实现乐观锁的。大致思路:取出记录,携带记录的当前version;更新记录的时候,比较记录当前
- gradle文件执行流程做过Android开发的同学都知道 ,Android项目中存在三个gradle文件,那你是否知道他们的执行流程呢?请
- 本文实例讲述了C#使用linq语句查询数组中以特定字符开头元素的方法。分享给大家供大家参考。具体如下:下面的代码查询数组中以字母k开头的元素
- 本文实例讲述了Android中Service实时向Activity传递数据的方法。分享给大家供大家参考。具体如下:这里演示一个案例,需求如下
- 在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把可能用到的View
- 本文实例为大家分享了Java实现分页功能的具体代码,供大家参考,具体内容如下不用根据改变SQL的形式去查询; 直接查询所有的数据,根据页码自
- 目录前言一、Spring Boot对Redis的支持二、实战1、添加依赖2、redis配置3、实现序列化4、创建Redis连接工厂,同时注册
- 智能终端上的游戏目前风头正劲,试问哪个智能手机上没有几款企鹅公司出品的游戏呢!之前从未涉猎过游戏开发,但知道游戏开发前要挑选一款合适的游戏引
- 本文实例为大家分享了Unity shader实现高斯模糊效果的具体代码,供大家参考,具体内容如下正常图:高斯模糊效果图:shader代码:S
- Java音频播放,因为必须依赖到本地环境,所以JAVA在音频处理方面优势不大,或者说打从Java体系开发时就没太多的考虑音频播放
- 初级技巧 - 乐观锁乐观锁适合这样的场景:读不会冲突,写会冲突。同时读的频率远大于写。以下面的代码为例,悲观锁的实现:public Obje
- Android原生控件只有横向进度条一种,而且没法变换样式,比如原生rom的样子很丑是吧,当伟大的产品设计要求更换前背景,甚至纵向,甚至圆弧
- 前言现在开发大部分都是服务化或者微服务,数据交换都是跨服务的,这里记录java调取其他接口的方法,下面话不多说了,来一起看看详细的介绍吧。j
- 什么是EurekaEureka是Netfilx开源的一个用来实现微服务的注册与发现的组件。它包含Server和Client两部分。为什么要有
- 1 分布式1.1 什么是分布式分布式系统一定是由多个节点组成的系统。其中,节点指的是计算机服务器,而且这些节点一般不是孤立的,而是互通的。这
- 一、算术运算符运算符:常见的±*/等表达式:运算符连接起来符合java语法的式子,比如a+b算术运算符:+ - * / %注:要想得到小数,
- TTL简介TTL 是什么呢?TTL 是 RabbitMQ 中一个消息或者队列的属性,表明一条消息或者该队列中的所有消息的最大存活时间,单位是
- 本文实例讲述了Android开发中4个常用的工具类。分享给大家供大家参考,具体如下:1、土司工具类(Toast管理)/** * Toast统
- JAVA基础八股文Switch能支持哪些类型?jdk5之前,switch能够作用在byte,short,char,int(实际上都是提升为i
- 在Android中,线程内部或者线程之间进行信息交互时经常会使用消息,这些基础的东西如果我们熟悉其内部的原理,将会使我们容易、更好地架构系统