当前位置:文档之家› java实验—猜数字游戏

java实验—猜数字游戏

户需求分析1.玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。

2.对玩家输入的数字进行判断大小,如果不是系统要求的数字,系统将提示您,您输入的不是数字请重新输入,给出提醒以便玩家进一步选择。

3.玩家猜中时系统给出所用时间和游戏水平的判断,系统给出是否继续的提示及判断。

4.系统根据您猜数字的次数,自动计数.5.直到用户猜到数字为止,提示信息是否继续猜数字,如果继续将进入下一次游戏,如果退出将退出游戏系统.2 开发环境分析MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。

它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。

在结构上,MyEclipse的特征可以被分为7类:1. JavaEE模型2. WEB开发工具3. EJB开发工具4. 应用程序服务器的连接器5. JavaEE项目部署服务6. 数据库服务7. MyEclipse整合帮助对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。

MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。

简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错。

该程序基于JDK和MyEclipse编写,选用MyEclipse是界面设计所需。

根据系统范围随机产生一个数字,可根据玩家选择给出不同的数字。

玩家输入所猜数字时给出与真实数字的大小比较。

在玩家猜中时,可给出其所用时间,并给出评价。

最后,游戏的结束与继续可由玩家控制。

三、系统设计3.1 系统总体设计3.1.1 总体设计分析1随机数的获取:玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。

2 输入输出模块:对玩家输入的数字进行判断和提示。

如果玩家输入的不是系统要求的数字,系统将提示您,您输入的不是数字请重新输入.。

如果玩家输入的数字与随机生成数相比较,比随机生成数小.系统提示您,数字太小请您重新输入。

如果玩家输入的数字与随机生成数相比较,比随机生成数大.系统提示您,数字太大请您重新输入。

3 判断模块:算出所用时间在玩家猜中时给出其所用时间,系统给出对其水平的判断和是否继续的提示;对玩家要求判断执行。

4 自动计数模块:系统根据您猜数字的次数,自动计数.5 结果输出模块:直到用户猜到数字为止,提示信息是否继续猜数字,如果继续将进入下一次游戏,如果退出将退出游戏系统.3.1.2 程序结构点击“获取随机数”按钮,系统获取到一个随机数。

玩家输入一个数,如果玩家输入的数比系统给出的随机数小,系统会提示“您猜的太小了,请继续猜!”。

如果玩家输入的数比系统给出的随机数大,系统提示“您猜的太大了,请继续猜!”。

如果玩家猜对了数,但是所用时间大于十秒,系统会提示“这么久才猜出来,有点笨!”,并且会计算出玩家所用的时间和所猜的次数。

如果玩家猜对了数,而且所用时间小于十秒,系统会提示“恭喜您,猜对了!您真棒,智商真高!”,并且会计算出玩家所用的时间和所猜的次数。

图1 程序结构图3.2 功能模块设计3.2.1 功能模块图游戏分为随机数的获取,输入输出模块,判断模块,自动计数模块,结果输出模块。

其中输入输出模块中系统会对玩家给出的数进行判断和输出。

判断模块会对玩家的水平进行判断,并计算出玩家所用的时间和次数。

图2 功能模块图3.2.2 功能模块详细设计1随机数的获取功能描述:玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。

2 输入输出模块功能描述:对玩家输入的数字进行判断和提示。

如果玩家输入的不是系统要求的数字,系统将提示您,您输入的不是数字请重新输入.。

如果玩家输入的数字与随机生成数相比较,比随机生成数小.系统提示您,数字太小请您重新输入。

如果玩家输入的数字与随机生成数相比较,比随机生成数大.系统提示您,数字太大请您重新输入。

图3 输入输出模块图3 判断模块功能描述:算出所用时间在玩家猜中时给出其所用时间,系统给出对其水平的判断和是否继续的提示;对玩家要求判断执行。

图4 判断模块图4 自动计数模块功能描述:系统根据您猜数字的次数,自动计数.图5 自动计数模块图5 结果输出模块功能描述:直到用户猜到数字为止,提示信息是否继续猜数字,如果继续将进入下一次游戏,如果退出将退出游戏系统.3.3 类的设计表1类的分类从用户的角度看,Java 源程序中的类分为两种:系统定义的类:即 Java 类库,它是系统定义好的类。

Java 语言由语法规则和类库两部分组成,语法规则确定 Java 程序的书写规范;类库则提供了 Java 程序与运行它的系统软件(Java 虚拟机)之间的接口。

用户自定义类:系统定义的类虽然实现了许多常见的功能,但是用户程序仍然需要针对特定问题的特定逻辑来定义自己的类。

在 Java 程序中,用户自定义类的一般格式如下:class 类名数据成员成员方法类的结构是由类说明和类体两部分组成的。

类的说明部分由关键字 class 与类名组成,类名的命名遵循 Java 标识符的定义规则。

类体是类声明中花括号所包括的全部内容,它又是由数据成员(属性)和成员方法(方法)两部分组成。

数据成员描述对象的属性;成员方法则刻画对象的行为或动作,每一个成员方法确定一个功能或操作。

首先搭建Java程序框架。

打开Eclipse,新建名为GuessNumberGame的项目,然后新建名为GuessNumber的Java类。

GuessNumber加上合适的javadoc。

第一步:随机数的产生我们可以借助Java API提供的Random类来产生一个随机数。

首先在main函数中加入以下三行代码:// 新建一个随机数产生器,然后生成一个1到100之间的整数。

num=(int)(Math.random()*100);String answer;Scanner input=new Scanner(System.in);第二步:标准输入输出标准输入输出(Standard I/O)是指可以被应用程序使用的信息流。

应用程序可以从标准输入(Standard input)读取数据,向标准输出(Standard output)写数据,把出错信息发送到标准错误(Standard error)。

通过输入输出,应用程序和应用程序之间可以被串联起来使用。

虽然标准输入输出是从UNIX发展出来的概念,在Windows中也广泛应用。

猜数字游戏主要用到标准输入,更明确一些,就是控制台输入。

相反,要从控制台输入,就需要用到System.in。

它是一个纯粹的输入流,而猜数字游戏主要是通过控制台获取玩家的字符输入,我们需要把它包装成一个BufferedReader。

第三步:使用BorderLayout对图形界面的窗口进行设计。

四、程序实现4.1 程序流程图点击“获取随机数”按钮,系统获取到一个随机数。

玩家输入一个数,如果玩家输入的数比系统给出的随机数小,系统会提示“您猜的太小了,请继续猜!”。

如果玩家输入的数比系统给出的随机数大,系统提示“您猜的太大了,请继续猜!”。

如果玩家猜对了数,但是所用时间大于十秒,系统会提示“这么久才猜出来,有点笨!”,并且会计算出玩家所用的时间和所猜的次数。

如果玩家猜对了数,而且所用时间小于十秒,系统会提示“恭喜您,猜对了!您真棒,智商真高!”,并且会计算出玩家所用的时间和所猜的次数。

图6 程序流程图4.2 关键算法与技术实现4.2.1 随机数的获取num=(int)(Math.random()*100);String answer;Scanner input=new Scanner(System.in);4.2.2 输入输出for(i=1;i<=10;i++){if(num2<num){lbshow.setText("您猜的太小了,请继续猜!");continue;}else if(num2>num){lbshow.setText("您猜的太大了,请继续猜!");continue;}long endTime=System.currentTimeMillis();long t;t=(endTime-startTime)/1000;strshow="您总共猜了"+counter+"次,您猜数字总共花了"+(endTime-startTime)/1000+"秒";if(t<10)lbshow.setText("恭喜您,猜对了!您真棒,智商真高!"+strshow);else if(t>10)lbshow.setText("这么久才猜出来,有点笨!"+strshow);}}4.2.3 判断时间startTime=System.currentTimeMillis();long endTime=System.currentTimeMillis();strshow="您猜数字总共花了"+(endTime-startTime)/1000+"秒";4.2.4 自动计数int geust=0;counter++;strshow="您总共猜了"+counter+"次;4.2.5 结果输出long t;t=(endTime-startTime)/1000;strshow="您总共猜了"+counter+"次,您猜数字总共花了"+(endTime-startTime)/1000+"秒";if(t<10)lbshow.setText("恭喜您,猜对了!您真棒,智商真高!"+strshow);else if(t>10)lbshow.setText("这么久才猜出来,有点笨!"+strshow);4.2.6 图形界面的实现BorderLayout bdmg=new BorderLayout();Button button1=new Button("获取随机数");Button button2=new Button("确定");String str=null;String str2=null;long startTime;int num,num2;int counter=0;myGeustNum my1=new myGeustNum();TextField input;Label lbshow=new Label("");Label lbshow2=new Label("");int i;String strshow;public void init(){setLayout(bdmg);add(button1,BorderLayout.NORTH);button1.addActionListener(this);button1.setSize(50,50);Label lb1=new Label(" 请输入");lb1.setSize(50,20);this.add(lb1,BorderLayout.WEST);input=new TextField(10);input.setSize(40,50);add(input,BorderLayout.CENTER);add(button2,BorderLayout.EAST);lb1.setSize(50,20);button2.addActionListener(this);button2.setSize(50,20);add(lbshow,BorderLayout.SOUTH);setSize(450,200);}4.3 类的实现首先搭建Java程序框架。

相关主题