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