|
石头剪刀布还能这么玩,用java实现人机猜拳游戏
楼主
来源:ohnoma@ohnomatter 7/4/2016 10:23:00 PM
猜拳一种简单的游戏,共有剪刀、石头、布三个手势。二人同时用手做出相应形状而出,输赢判断规则为:剪刀赢布,布赢石头,石头赢剪刀。起源有两种说法:一种是说起源于中国,主要是由明朝人所写"五杂俎"记载最早剪子石头布是起源自汉朝的手势令与豁拳,然而中国所谓的豁拳是否是指猜拳,这仍待考证。另外一种比较有直接证据的说法是起源于日本19世纪,相关资料可见由日本国立民族学博物馆所出版的文献,作者Linhart, Sepp。日本明治时期开始传入中国,到了二十世纪剪子石头布的游戏开始传到了欧洲与美国,而欧美都称剪子石头布的游戏是"日本游戏",法国人称剪子石头布为"jeu Japonais" (意思就是日本游戏)。原因就是因为到了二十世纪,日本人大量西化以及日本人到世界各国游历的原因,也对欧美推广了这个游戏,使得很多欧美人都认为剪子石头布就是日本的游戏。但我们今天不是来讲这游戏的起源的,我们要讲的是用java实现人机猜拳游戏。这是在java培训中一般都会讲解的案例,下面一起来看看吧。 /*
猜拳游戏思路 1、定义输入函数 2、提示用户输入猜拳数值 3、定义随机一个数作为电脑数值 4、判断[用户输入数值]与 [电脑随机数值] 5、能够相等就是打平,不能相等就利用&&、||逻辑符判断输赢 6、设定数值1-石头 2-剪刀 3-布 */ import java.util.*;//嵌入Java.util包所有 public class cq1{ public static void main(String[] args){ Scanner in=new Scanner(System.in);//定义输入函数in,Scanner包功能,输入数值用的 System.out.println("--------------猜拳游戏---------------"); System.out.println("请输入一个数值:1、石头 2、剪刀 3、布");//提示输入数值 System.out.println(" ");//空行 int x=in.nextInt();//让用户输入X的数值 Random on=new Random();//定义电脑的随机数值的函数on int y=on.nextInt(3)+1;//定义y随机函数数值范围(1--3) if(x>=4||x==0){ //判断用户是否输入非1--3范围 System.out.println("亲,请正确输入:1、石头 2、剪刀 3、布。你输入了:"+x); } else{ /*下面是判断用户输入x的数值 嵌套if*/ if(x==y){ if(x==1){ //判断打平的情况 System.out.println("你:石头------电脑:石头 PK:很幸运打平手"); } else if(x==2){ System.out.println("你:剪刀------电脑:剪刀 PK:很幸运打平手"); }else { System.out.println("你:布------电脑:布 PK:很幸运打平手"); } /* 打平手的判断END*/ }elseif(x==1&&y==2||x==2&&y==3||x==3&&y==1){ //开始判断赢的情况 if(x==1&&y==2){ System.out.println("你:石头------电脑:剪刀 PK:恭喜您,赢了!"); }else if(x==2&&y==3){ System.out.println("你:剪刀------电脑:布 PK:恭喜您,赢了!"); }else {System.out.println("你:布------电脑:石头 PK:恭喜您,赢了!");} //判断赢的情况END }else {//开始判断输的情况 if(x==1&&y==3){ System.out.println("你:石头------电脑:布 PK:很遗憾,输了!"); }else if(x==2&&y==1){ System.out.println("你:剪刀------电脑:石头 PK:很遗憾,输了!"); }else { System.out.println("你:布------电脑:剪刀 PK:很遗憾,输了!"); } }//判断输的情况END }//判断是否输入数值1-3范围,如果不是1-3会提醒重新输入 END } } 更多精彩课程尽在上海海文信息技术有限公司,http://www.oracleoaec.net/。 |