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 + " }"); } } }
原文:https://www.cnblogs.com/caoleiCoding/p/8983121.html