java實(shí)現(xiàn)簡單石頭剪刀布游戲
本文實(shí)例為大家分享了java實(shí)現(xiàn)簡單石頭剪刀布游戲的具體代碼,供大家參考,具體內(nèi)容如下
問題描述
Alice, Bob和Cindy一起玩猜拳的游戲。和兩個(gè)人的猜拳類似,每一輪,他們會從石頭、剪刀、布中各自選一個(gè)出拳,基本的勝負(fù)規(guī)則是石頭贏剪刀、剪刀贏布、布贏石頭。如果一輪中正好可以分成勝負(fù)兩邊,則負(fù)邊的每個(gè)人要支付給勝邊的每個(gè)人一塊錢。如果無法分成勝負(fù)兩邊,則都不出錢。比如,如果Alice出石頭,而Bob和Cindy都出布,則Alice要分支付Bob和Cindy一塊錢。再如,如果Alice出石頭, Bob出剪刀, Cindy出布,則都不出錢。他們?nèi)斯策M(jìn)行了n輪游戲,請問最后每個(gè)人凈賺多少錢?即賺的錢減去支付的錢是多少?
代碼
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);
}
}
運(yùn)行截圖

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java結(jié)合keytool如何實(shí)現(xiàn)非對稱簽名和驗(yàn)證詳解
這篇文章主要給大家介紹了關(guān)于java結(jié)合keytool如何實(shí)現(xiàn)非對稱簽名和驗(yàn)證的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08
Spring使用@Filter注解創(chuàng)建自定義過濾器
Spring 中鮮為人知但非常有用的注解之一是 @Filter,它支持自定義過濾器,下面我們就來深入研究一下如何使用 Spring 的 @Filter 注解來創(chuàng)建自定義過濾器吧2023-11-11
Java實(shí)現(xiàn)的微信公眾號獲取微信用戶信息示例
這篇文章主要介紹了Java實(shí)現(xiàn)的微信公眾號獲取微信用戶信息,結(jié)合實(shí)例形式分析了Java微信公眾號獲取微信用戶信息相關(guān)原理、步驟與操作注意事項(xiàng),需要的朋友可以參考下2019-10-10
MyBatis Mapper中 @Select注解調(diào)用靜態(tài)常量的問題分析
在Java編碼中,我們通常會把這些數(shù)字或者字符串定義在常量類或者接口中,可以直接在mapper中也可以使用這些常量就比較好,這篇文章主要介紹了MyBatis Mapper中 @Select注解調(diào)用靜態(tài)常量,需要的朋友可以參考下2023-06-06
java并發(fā)等待條件的實(shí)現(xiàn)原理詳解
這篇文章主要介紹了java并發(fā)等待條件的實(shí)現(xiàn)原理詳解,還是比較不錯(cuò)的,這里分享給大家,供需要的朋友參考。2017-11-11
java使用RabbitMQ實(shí)現(xiàn)延遲消息示例
本文介紹了在分布式系統(tǒng)中,使用RabbitMQ實(shí)現(xiàn)延遲消息處理,其中詳細(xì)闡述了RabbitMQ隊(duì)列和交換機(jī)的配置、消息的發(fā)送與接收以及死信隊(duì)列的處理,具有一定的參考價(jià)值,感興趣的可以了解一下2024-10-10

