黑马程序员技术交流社区
标题:
和大家分享一个小游戏
[打印本页]
作者:
施家雄
时间:
2013-4-19 20:03
标题:
和大家分享一个小游戏
本帖最后由 施家雄 于 2013-4-19 20:08 编辑
这是一个剪刀石头布的小游戏。和大家分享下,判断电脑和人玩的输赢情况分别用了两种方法,一种是if...else,另一种是switch语句。
代码如下:
/*
这是一个简单的小游戏,剪刀石头布!
*/
import java.util.Scanner;
public class GameDemo {
public static void main(String[] args){
char isContinue='y'; //判断是否继续玩
int winCount=0; //赢的次数,初使化为0
int loseCount=0; //输的次数,初使为0
int eqCount=0; //平的次数,初使化为0
do{
System.out.println("1,出剪刀。"); //1代表出剪刀
System.out.println("2,出石头。"); //2代表出石头
System.out.println("3,出布。"); //3代表出布
System.out.println("请选择出什么:");
//定义一个键盘,
Scanner input=new Scanner(System.in);
int player=input.nextInt(); //用键盘输入一个整数。
if(player>3||player<1)
{
System.out.println("输入有误,请重新输入!");
continue;
}
double c=Math.random(); //随机得到一个0到1的数
System.out.println("计算机的随机出手数:"+c);
c=Math.round(c*2); //四舍五入,得到一个0到2的数。
c=c+1; //得到一个1到3的数。
int computer=(int)c;
/*
if(computer==1)
{
if(player==1)
{
System.out.println("平手");
}
else if(player==2)
{
System.out.println("你真厉害!");
}
else
{
System.out.println("呵呵,你输了。");
}
}
if(computer==2)
{
if(player==1)
{
System.out.println("你输了。继续加油!");
}
if(player==2)
{
System.out.println("平手");
}
else
{
System.out.println("恭喜你,赢了!");
}
}
if(computer==3)
{
if(player==1)
{
System.out.println("恭喜你,赢了!");
}
else if(player==2)
{
System.out.println("哈哈,你输了!");
}
else
{
System.out.println("平局!");
}
}
*/
switch(computer)
{
case 1: //计算机出剪刀
{
switch(player)
{
case 1: System.out.println("不好不坏,平手!");
eqCount++;
break;
case 2: System.out.println("恭喜你,你赢了!");
winCount++;
break;
case 3: System.out.println("很抱歉,你输了!");
loseCount++;
break;
}
}
break;
case 2: //计算机出石头
{
switch(player)
{
case 1: System.out.println("很抱歉,你输了!");
loseCount++;
break;
case 2: System.out.println("不好不坏,平手!");
eqCount++;
break;
case 3: System.out.println("恭喜你,你赢了!");
winCount++;
break;
}
}
break;
case 3: //计算机出布
{
switch(player)
{
case 1: System.out.println("恭喜你,你赢了!");
winCount++;
break;
case 2: System.out.println("很抱歉,你输了!");
loseCount++;
break;
case 3: System.out.println("不好不坏,平了!");
eqCount++;
break;
}
}
break;
}
System.out.println("你继续游戏吗?[y/n]");
isContinue=input.next().charAt(0); //input.next()输入一个字符串,input.next().charAt(0)在输入的字符串基础上定位第一个字符。
}while(isContinue=='y'||isContinue=='y');
int sum=winCount+loseCount+eqCount;
System.out.println("你总共玩了"+sum+"局游戏,其中赢了"+winCount+"次,输了"+loseCount+"次,平了"+eqCount+"次。");
System.out.println("GameOver!");
}
}
复制代码
大家给分析下,有什么不好的地方指正下,谢谢了!
作者:
邵震
时间:
2013-7-6 14:22
第21行的代码用int接受容易出现异常 我一般都是用String来接收然后判断是否符合条件
还有就是判断,我想了一下,可不可以这样
假设:
石头=1,剪子=2,布=3。
玩家的值=x;
电脑的值=y;
int temp = x-y;
if(temp>0){
System.out.println("你输了");
}else if(temp<0){
System.out.println("你赢了");
}else{
System.out.println("平局");
}
临时想的 你试试能不能用
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2