zoukankan      html  css  js  c++  java
  • 猜拳游戏三局两胜------java实现代码

    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 + " }");
    		}
    
    	}
    }
    

      

  • 相关阅读:
    systick运用
    stm32的systick原理与应用
    PID算法知识点博文收藏记录
    关于STM32驱动DS1302实时时钟的一点思考
    什么是同步?什么是互斥?
    C语言小笔记(1)
    typedef 复杂函数指针
    获取窗口句柄
    GetWindowRect和GetClientRect的区别详解
    RepositionBars的用法和参数的意义(引用别人的)
  • 原文地址:https://www.cnblogs.com/caoleiCoding/p/8983121.html
Copyright © 2011-2022 走看看