| 
 
| 2015年11月25日,在黑马的第十五天,每天都是那么忙碌充实,不过今天有点不爽,被一道题虐了。大D号称班上很少人写出来,大家都感觉应该是一个很难的题目。说到这点你们是不是很想知道这道题是什么呢。好吧,我先剧透吧,就是写一个石头剪刀布的游戏。主要是自己当时真的没有任何思路,等大家都在努力写代码的时候我却在发呆,感觉脑海一篇空白,后来认真想想,才知道是自己的思路不对。好吧,下面就把题目给大家说说吧。 题目:写一个石头剪刀布的游戏。三局两胜制,甲方是电脑,乙方是自己。题目要求如下:
 如果是平局,重新输入,如果不是平局,需要在控制台上打印:
 第一局:XXX胜利
 第二局:XXX胜利
 第三局:XXX胜利
 最终XXX胜利
 
 
 好吧,先开始分析:
 1、需要从键盘录入自己要出的拳,使用Scanner
 2、电脑的出拳是随机的,考虑使用random来产生随机数,再将相应的值赋予实际意义
 3、分别当自己输入石头、剪刀、布的时候,进行不同的判断
 4、采用三局两胜制,当胜局出现三次以后,整个循环结束,判断是电脑胜利的次数多还是人的次数多,最后输出
 
 代码如下:
 
 import java.util.Scanner;           //导包
 public class Example01 {
 public static void main(String[] args) {
 Scanner sc = new Scanner(System.in);    //创建Scanner的对象
 int ren = 0;                                //定义人的胜利次数
 int computer = 0;                        //定义电脑胜利的次数
 while(true) {                                        //在比较中会出现平局的情况,
 System.out.println("请输入您要出的拳:");
 String name = sc.nextLine();    //从键盘接收一个字符串,即人要出的拳
 int i = (int)(Math.random() * 3); //随机生成0~2三个随机数,赋予相应的意义   0代表石头  1代表剪刀  2代表布
 
 //判断当键盘录入是石头时
 
 if("石头".equals(name)) {      //如果从键盘录入的是一个石头,就进行该判断
 switch (i) {
 case 0:        //当随机生成的数是0时,即代表键盘输入的是石头
 System.out.println("电脑出的是石头,平局");
 break;
 case 1:                   //当随机生成的数是1时,即代表键盘输入的是剪刀
 System.out.println("电脑出的是剪刀,您赢了~");
 ren++;
 break;
 default:          //该种情况就是随机生成了一个布
 System.out.println("电脑出的是布,您输了~");
 computer++;
 break;
 }
 
 //判断当键盘录入是剪刀时
 
 }else if("剪刀".equals(name)) {
 switch (i) {
 case 0:
 System.out.println("电脑出的是石头,您输了");
 computer++;
 break;
 case 2:
 System.out.println("电脑出的是布,您赢了");
 computer++;
 break;
 default:
 System.out.println("电脑出的是剪刀,平局");
 break;
 }
 
 //判断当键盘录入是布时
 
 }else if("布".equals(name)) {
 switch (i) {
 case 0:
 System.out.println("电脑出的是石头,您赢了~");
 ren++;
 break;
 case 1:
 System.out.println("电脑出的是剪刀,您输了~");
 computer++;
 break;
 default:
 System.out.println("电脑出的是布,平局");
 break;
 }
 }
 
 //判断是不是出现胜利的次数总共是三局,如果是,比较两个的大小,输出胜利者,并结束所有循环。
 if(3 == computer + ren) {
 if(computer > ren) {
 System.out.println("电脑胜利");
 break;
 }else {
 System.out.println("人类胜利");
 break;
 }
 }
 }
 }
 }
 
 上面就是一个石头剪刀布的游戏,一开始没有思路,就是在纠结字符串怎么能拿来和int的数值做比较,后来才知道自己的思维方向就是一个错误,给大家的意见就是,在思考问题的时候最好把想到的东西写下来,不能凭空想象,是没有任何结果的,我一开始想这个问题的时候就是在大脑里想象,什么都没有写,导致思路布明朗,后来通过写出来,思路开始明朗,希望大家要以我为鉴。
 这个就是今天的练习题了,如果你有更好的思维方式,麻烦您一点要告诉我,希望大神可以进来给小弟指点指点,小弟不胜感激。。谢谢
 好吧,今天就到这吧,明天继续.......
 
 
 
 
 
 
 
 | 
 |