小城盱眙网
标题: 石头剪刀布还能这么玩,用java实现人机猜拳游戏 [打印本页]
作者: ohnoma 时间: 2016-7-5 10:16
标题: 石头剪刀布还能这么玩,用java实现人机猜拳游戏
猜拳一种简单的游戏,共有剪刀、石头、布三个手势。二人同时用手做出相应形状而出,输赢判断规则为:剪刀赢布,布赢石头,石头赢剪刀。起源有两种说法:一种是说起源于中国,主要是由明朝人所写"五杂俎"记载最早剪子石头布是起源自汉朝的手势令与豁拳,然而中国所谓的豁拳是否是指猜拳,这仍待考证。另外一种比较有直接证据的说法是起源于日本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/。
欢迎光临 小城盱眙网 (http://www.xcxy.net/) |
Powered by Discuz! X3.2 |