金海湾首页 | 分类信息 | 招聘 | 房产 | 黄页 | 论坛 | 博客 | 新闻热点
金海湾  >  论坛首页  >  教育培训  >  石头剪刀布还能这么玩,用java实现人机猜拳游戏
发帖回帖
返回列表
石头剪刀布还能这么玩,用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/

回复该贴      
发帖回帖
返回列表
 回复主题
          预览