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
0
投稿
猜你喜欢
- 本文实例讲述了C++语言实现线性表之链表实现方法。分享给大家供大家参考。具体分析如下:插入、删除结点的代码有点多,但这样提高了代码的可读性,
- 很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,
- 方式一:if语句控制// 例如:Column( mainAxisAlig
- 需求: 给定一个URL地址, 例如: http://www.cncounter.com/tools/shorturl.php, 解析对应的I
- ImageCacheconst int _kDefaultSize = 1000;const int _kDefaultSizeBytes
- 本文向您展示了在 Flutter 中实现完美的验证码输入框几种不同方法。重点是什么?真实世界的 完美的验证码输入框或 PIN 输入 UI 通
- 前言服务消费者调用服务提供者的时候使用RestTemplate技术存在不便之处:拼接urlrestTmplate.getForObJect这
- 最近在看《.NET游戏编程入门经典 C#篇》 第一章介绍了如何制作俄罗斯方块,自己试了试按照书上的步骤,可算是完成了。于是写下这篇文章留作纪
- 报错翻译: compileSdkVersion android-24”需要JDK 1.8或更高版本编译。报错现象如下图:原因:st
- [LeetCode] 2. Add Two Numbers 两个数字相加You are given two non-empty&n
- 前言在电商的应用中,最常见的就是在首页或完成某事件之后,弹出一堆的活动/广告。假如重叠弹出,很丑,给用户的体验也不好,所以一般都会依次依条件
- 概述:App几乎都离不开与服务器的交互,本文主要讲解了flutter网络请求三种方式 flutter自带的HttpClient、 第三方库h
- 简要:EigenFace是基于PCA降维的人脸识别算法,PCA是使整体数据降维后的方差最大,没有考虑降维后类间的变化。 它是将图像
- 已经有很多关于 Flutter WebView 的文章了,为什么还要写一篇。两个原因:Flutter WebView 是 Flutter 开
- 背景今天面试字节算法岗时被问到的问题,让我用C++实现一个softmax函数。softmax是逻辑回归在多分类问题上的推广。大概的公式如下:
- 最近“全网域(Web Scale)”一词被炒得火热,人们也正在通过扩展他们的应用程序架构来使他们的系统变得更加“全网域”。但是究竟什么是全网
- 1.多数据源配置类整体项目结构1).pom.xml 项目依赖<?xml version="1.0" encodin
- 首先打开 Visual Studio Installer 可以看到vs2022 只支持安装4.6及以上的版本,如图所示。那么该如何安装4.6
- 本文实例为大家分享了iOS新浪微博分享功能的具体代码,供大家参考,具体内容如下做新浪分享 需先去http://open.weibo.com/
- 本文实例讲述了C#创建临时文件的方法。分享给大家供大家参考。具体分析如下:C#可以通过Path.GetTempFileName获得一个临时文