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的数值做比较,后来才知道自己的思维方向就是一个错误,给大家的意见就是,在思考问题的时候最好把想到的东西写下来,不能凭空想象,是没有任何结果的,我一开始想这个问题的时候就是在大脑里想象,什么都没有写,导致思路布明朗,后来通过写出来,思路开始明朗,希望大家要以我为鉴。
这个就是今天的练习题了,如果你有更好的思维方式,麻烦您一点要告诉我,希望大神可以进来给小弟指点指点,小弟不胜感激。。谢谢
好吧,今天就到这吧,明天继续.......
|
|