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

  

猜拳游戏三局两胜------java实现代码的更多相关文章

  1. Python,while循环小例子--猜拳游戏(三局二胜)

    Python,while循环小例子--猜拳游戏(三局二胜) import random all_choice = ['石头', '剪刀', '布'] prompt = '''(0)石头 (1)剪刀 ( ...

  2. 石头剪刀布三局两胜(平局重来break用法)

  3. python 实现剪刀石头布(三局两胜)

    # -*- coding:utf-8 -*- import random # best of three def finger_guess(): rule = {1:'rock', 2:'paper' ...

  4. java 人机猜拳 游戏

    人机猜拳-游戏 掌握类和对象的使用,掌握方法的定义和返回值,掌握封装的运用 定义一个电脑类:Computer.java 点击查看[Computer.java]代码 /** * @Title: 电脑类 ...

  5. JAVA 猜拳游戏

    JAVA 猜拳游戏 题目:通过控制台方式实现一个人机对战的猜拳游戏 用户通过输入(0.石头子 1.剪刀 2.布),机器随机生成(0.石头子 1.剪刀 2.布) 要求: 能打印玩家的对局信息,胜利的次数 ...

  6. 求三数中Max和猜拳游戏

    方法一: Console.WriteLine("请输入三个数字:"); int a = int.Parse(Console.ReadLine()); int b = int.Par ...

  7. python与java的猜拳游戏

    python版: import randomprint("-----猜拳游戏-----")print("---0.剪刀--1.石头--2.布---")while ...

  8. 人机猜拳游戏Java

    作业要求: 我的代码: package day20181119;/** * 猜拳游戏 * @author Administrator * @version1.0 */import java.util. ...

  9. 有趣的java小项目------猜拳游戏

    package com.aaa; //总结:猜拳游戏主要掌握3个方面:1.人出的动作是从键盘输入的(System.in)2.电脑是随机出的(Random随机数)3.双方都要出(条件判断) import ...

随机推荐

  1. 仿联想商城laravel实战---3、前端页面搭建(什么情况下需要路由接参数)

    仿联想商城laravel实战---3.前端页面搭建(什么情况下需要路由接参数) 一.总结 一句话总结: 比如访问课程的时候,不同的课程(比如云知梦),比如访问不同的商品,比如访问不同的分类 //商品详 ...

  2. 理解VMware虚拟网络

    简述:VMware虚拟网络概述.实现虚拟网络上网 Part0 子网掩码.DHCP.NAT,这些点请自行百度,百度百科讲的很清晰. Part1 转载:本文出自 "王春海的博客" 博客 ...

  3. director.js实现前端路由

    注:director.js的官网 https://github.com/flatiron/director director.js是什么? 理解:前端的route框架,director.js客户端的路 ...

  4. JQuery表单验证插件EasyValidator

    本插件的宗旨是:用户无需写一行JS验证代码,只需在要验证的表单中加入相应的验证属性即可,让验证功能易维护,可扩展,更容易上手. DEMO中已经包含了常用的正则表达式,可以直接复用,为了考虑扩展性,所以 ...

  5. 重写ScrollView实现两个ScrollView的同步滚动显示

    1.背景介绍 最近项目用到两个ScrollView的同步显示,即拖动左边的ScrollView滚动的同时,实现右边的ScrollView同步滚动.此种情形常用在复杂界面布局中,比如左边的ScrollV ...

  6. js基础:关于Boolean() 与 if

    最近面试比较多,但每次我问这个问题的时候,答出来的同学并不多 var a = 0; if( a) { alert(1); } 这个问题有部分人会答alert(1),   有些人会答不执行. 结果是不执 ...

  7. JS undefined

    undefined表示"缺少值",就是此处应该有一个值,但是还没有定义.典型用法是: (1)变量被声明了,但没有赋值时,就等于undefined. (2) 调用函数时,应该提供的参 ...

  8. 在Altium Designer 2009下如何添加Logo图

    最近用Altium Designer 2013(14.2)绘制PCB,之后想在板子上放置一个LOGO图.要是用Altium Designer10以前的版本,过程也很简单,可在用Altium Desig ...

  9. 为什么并行测试很困难以及如何使用 ConTest 辅助测试

    众所周知并行程序设计易于产生 bug.更为严重的是,往往在开发过程的晚期当这些并行 bug 引起严重的损害时才能发现它们并且难于调试它们.即使彻底地对它们进行了调试,常规的单元测试实践也很可能遗漏并行 ...

  10. Jenkins搭建Nodejs自动化测试

    一.安装Jenkins(Windows) 1. 在Jenkins官网(https://jenkins.io/)下载安装包,解压并安装 2. 安装完成后,会自动打开一个页面,根据提示在安装目录下找到随机 ...