package com.javasm.exerices02;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
/**
*
*TODO 石頭剪刀布猜拳游戲,三局兩勝
* @author caolei 2018年5月2日下午10:51:23
* RockPaperScissors
*/
public class RockPaperScissors {
// 用於存放猜拳結果
private static List<String> gameResult;
public static void crGuessingGame(Scanner sc) {
gameResult = new ArrayList<String>();
// 存儲結果集
char[] finger = { '錘', '剪', '包' };
// 用於接收每一次的猜拳結果
String result;
// 用於計算機猜拳
Random random = new Random();
// 記錄計算機獲勝次數
int computerWinNumber = 0;
// 計算玩家獲勝次數
int playerWinNumber = 0;
// 記錄猜拳第幾輪
int i = 0;
// 循環出拳
while (true) {
System.out.println("第" + (i + 1) + "輪,請出拳:");
// 計算機生成的隨機數
int computerGet = random.nextInt(3);
// 用戶輸入的數
int playerInput = sc.nextInt();
// 記錄猜拳結果
result = finger[computerGet] + "," + finger[playerInput];
// 將結果放入集合中
gameResult.add(result);
/*
* 第一種通過if判斷結果
*
* if (computerGet == 0 && playerInput != 0) {
* if (playerInput == 1)
* computerWinNumber++;
* playerWinNumber++;
*
* } else if (computerGet == 1 && playerInput != 1) {
* if (playerInput == 2)
* computerWinNumber++;
* playerWinNumber++;
* } else if (computerGet == 2 && playerInput != 2) {
* if (playerInput == 0)
* computerWinNumber++;
* playerWinNumber++;
* }
*/
/**
* 第二種通過switch判斷結果
*/
switch (computerGet) {
case 0:
if (playerInput == 1)
computerWinNumber++;
if (playerInput == 2)
playerWinNumber++;
break;
case 1:
if (playerInput == 2)
computerWinNumber++;
if (playerInput == 0)
playerWinNumber++;
break;
case 2:
if (playerInput == 0)
computerWinNumber++;
if (playerInput == 1)
playerWinNumber++;
break;
default:
break;
}
// 記錄游戲輪數
i++;
// 判斷是否有人取得勝利
if (computerWinNumber == 2 || playerWinNumber == 2) {
break;
}
}
// 判斷獲勝者
if (computerWinNumber > playerWinNumber) {
System.out.println("電腦獲勝!");
} else {
System.out.println("恭喜你獲勝!");
}
// 輸出猜拳結果
System.out.println("具體結果如下:");
System.out.println("電腦,你");
for (String results : gameResult) {
System.out.println("{ " + results + " }");
}
}
}