JAVA猜数游戏文档格式.docx
《JAVA猜数游戏文档格式.docx》由会员分享,可在线阅读,更多相关《JAVA猜数游戏文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
用户可以随便猜一个数字,游戏会提示太大还是太小,从而缩小猜数范围。
经过几次猜测与提示后,直至猜到,给出所用猜数次数和评语最终退出游戏。
在游戏过程中。
记录用户最终猜对时所需要的次数。
游戏结束后公布结果。
具体要求:
通过菜单栏里提供的选项,进入游戏界面。
系统提示猜数字游戏的运行情况,一般情况下为正常,随即游戏者可以输入自己的猜数结果,可以通过按回车键完成输入。
每次完成一次游戏时,给出猜测的次数的统计。
按其他选项还可以选择退出游戏,查询答案,查询游戏记录,清除游戏记录。
游戏中要求完成一下内容:
1)要求记录产生的随机数并计算用户猜数次数、并完成提示玩家游戏信息等功能;
2)要求在玩家输入不是数字或输入范围不符合时会提示错误信息;
3)要求能判断程序随机生成数字与用户猜的数字的大小,玩家猜的数字偏大于随机生成数就提示“您猜的数字偏大,请重新输入”或玩家猜的数字偏小于随机生成数就提示“您猜的数字偏小,请重新输入”;
4)要求在玩家猜对的时候,提示信息“猜对啦!
”,并统计玩家猜数次数,反馈给玩家;
5)要求在玩家发出“enter”口令时能进入游戏;
6)要求在玩家发出“answer”口令时能显示该次游戏的答案;
7)要求在玩家发出“record”口令时能显示以往游戏中的最好成绩;
8)要求在玩家发出“clear”口令时能清除以往的游戏记录,并显示记录已被清除;
9)要求在玩家发出“exit”口令时能退出游戏。
2.2开发环境分析
本软件的组成程序为JAVA程序设计语言,组够均较简单,直观意义上的较独立。
因此,给予电子化的所构成的硬件的简单的可维护性的特点,决定该软件的简单可维护性。
在装载程序时,正常就运行,异常就停止;
JAVA编程系统出现错误,将会产生不可预见的问题,热启,整个终端程序就会再次启动;
程序出现错误,重新装载。
若依然有错,按照提示逐渐装载。
程序开发中会使用到MyEclipse软件,它是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。
MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的JavaEE集集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。
表2.2.1游戏运行环境分析表:
操作系统
Windows/xp/2003
内存容量
1G
外用设备
鼠标键盘
CPU
奔腾133
光驱
4倍速
磁盘空间
250G
开发软件
MyEclipse(8.0GA)
中央处理器
双核1.6GHZ
三、系统设计
3.1系统总体设计
本系统总共分为:
进入游戏系统、退出游戏系统、记录成绩系统、清除成绩系统,和显示答案功能系统。
进入游戏系统包括游戏提示、游戏时间计算、游戏次数计算、生成随机数、用户猜数、显示状态、显示记录、清除记录等功能;
开发整个系统具备了周期时间短、简单易用、休闲益智等几大类显著的特性。
本次系统开发设计出了界面大方简洁美化的游戏模式。
游戏规则如下:
3.2功能模块设计
猜数游戏的功能模块包含进入游戏模块,用来初始游戏,并记录用户猜测的数据与游戏随机产生的随机数;
成绩记录模块用来将用户游戏数据记录在计算机中,以便随时调用。
答案显示模块用来提供用户正确的答案。
记录清空模块用来将用户之前的游戏成绩记录删除清空。
退出游戏模块可以使用户在后悔进入游戏的情况下,立即结束游戏。
猜数游戏系统功能模块图如下:
图3.2.1猜数游戏功能模块图
3.3类的设计
游戏中,game作为类,负责创建游戏系统的运行,记忆测试系统由该类开始执行。
其中定义inti为猜数次数,定义n为用户猜的数字,定义number为一个随机数mathrandom,用于产生随机的数字,范围要求在0~99之间;
程序中运用方法system.in,用于记录用户输入的数据,使用if语句判断数字的大小,使用while语句循环判断数字大小,并逐个与其后的值相比较,当表达式的值与随机数字值相等时,即执行其后的语句,若程序中出现错误,则可通过trycatch语句来跳出错误,继续执行下面的语句。
使用System.out.println方法输出语句,给出数字判断或评价。
程序中设置了printStackTrace()方法来打印异常信息在程序中出错的位置及原因。
具体的成员方法说明及个别实现语句说明请见下表:
表3.3.1成员方法说明表
方法
功能
Math.random():
随机产生一个数
System.in():
输入消息对话框
System.out.println():
输出消息对话框
printStackTrace()
在命令行打印异常信息在程序中出错的位置及原因。
表3.3.2实现语句说明表
finally
finally中的代码无论出现什么状况都会运行到。
即使出现异常。
所以finally一般都是处理对资源的释放等操作。
trycatch
trycatch成对出现的,一个try就一定要有catch,被try包裹的代码说明,如果这些代码中只要抛出异常的话,就会停止当前的代码运行,而跳到catch中,对于异常进行处理。
try中没有发生异常,所以catch中的代码是执行不到的.
while
程序中不知道循环的次数,使用我还while语句进行动作的循环
类与成员变量成员方法及语句之间的关系图如下:
+game
成语变量
+i:
int
+number:
+n:
成员方法
Math.random()
System.in()
System.out.println()
语句
+while
+for
+ifelse
+finaly
+try...catch
图3.1.1类与成员变量成员方法及语句之间的关系图
用户可通过输入框选择任务,如:
开始游戏,退出游戏,显示答案,成绩记录,清除记录等。
进入游戏后,程序自动生成随机数,并发送请求用户输入数字,通过elseif语句判断数字与生成数的大小,并弹出对话框,输出信息。
之后再重新输入直到猜对,程序可以无限次的输入数字。
猜数正确后,会弹出对话框,输出信息,给出游戏最新记录,然后自动退出游戏。
该游戏记录存档在D盘,以记录猜数成绩信息,若输入clear,可清除记录,显示记录空。
Answer口令以显示系统自动生成的随机数。
Exit口令以直接退出游戏。
游戏中,最重要的部分是判断数字大小,该过程中将定义好的n与随机生成的数字number比较,运用到ifelse语句。
猜对后,运用break语句跳转到评价语句,显示游戏记录。
Trycatch语句用于输入错误时跳出语句。
四、程序实现
4.1程序流程图
RecordAnswerClearExit
重新输入数字重新输入数字
图4.1.1系统程序流程图
4.2关键算法与技术实现
4.2.1游戏菜单设置的具体算法
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.RandomAccessFile;
publicclassgame
{
inti=0;
//记录猜数字的次数
voidoperate()
System.out.println("
欢迎来到蔡馨颜开发的猜数字小游戏"
+
"
\n"
+"
输入“enter”进入游戏;
"
+"
输入“exit”退出游戏;
+
+"
输入“record”最新的游戏记录;
输入“answer”显示该次游戏的正确答案;
输入“clear”清除记录"
);
请选择上面的选项:
以上程序段通过定义int变量来记录猜数字的次数,并通过输出语句,来显示游戏的菜单。
4.2.2生成随机数的具体算法
voidplayGame(intnumber)
//intnumber=(int)(Math.random()*100);
游戏开始,请猜数,输入0-100之间的一个数:
InputStreamReaderisr=newInputStreamReader(System.in);
BufferedReaderbr=newBufferedReader(isr);
Stringstr="
;
intn;
RandomAccessFileraf=null;
try
while(br!
=null&
&
!
str.equals("
exit"
))
str=br.readLine();
n=Integer.parseInt(str);
i++;
//i记录输入数字的次数}}
以上程序段通过定义变量int来生成随机数,定义变量int来记录用户的猜测的数字,通过while语句实现退出。
4.2.3比较数字大小的具体算法
if(a<
number){
你猜的数字偏小!
//break;
}
elseif(a>
你猜的数字偏大!
}
elseif(a==number){
猜对啦,恭喜你!
你输入了"
+i+"
次"
以上程序段通过ifelse语句实现生成随机数与用户猜数之间的比较,并通过输出语句显示相关评价。
4.2.4记录与清除成绩的具体算法
Filef=newFile("
d:
\\RandomAccessFile.txt"
raf=newRandomAccessFile(f,"
rw"
//raf.seek(0);
//while(f.length()!
=
raf.setLength(0);
//写之前先将文件清空
raf.writeInt(i);
//输入数字的次数写入文件
raf.seek(0);
//定位到文件头
//raf.seek(raf.length()-1);
//定位到文件尾
最新的游戏记录:
+raf.readInt()+"
//打印最新的猜数字记录
………
RandomAccessFileraf=newRandomAccessFile(f,"
if(raf.length()>
0)//如果文件中有记录,则输出此数,否则显示“记录空”的提示
inti=raf.readInt();
最新的猜数字记录:
"
+i+"
else
无记录"
elseif(s.equals("
answer"
)){//输入“answer”显示该次游戏的正确答案;
该次游戏的正确答案:
+number);
r.playGame(number);
//进入游戏
clear"
……
以上程序段将游戏中记录成绩的文件自动存档在D盘里,便于游戏中用户查询成绩记录,除了成绩的查询,程序段还具有清除记录的功能。
4.2.5清空成绩的具体算法
RandomAccessFileraf=newRandomAccessFile(f,"
//raf.seek(0);
raf.setLength(0);
//raf.writeInt(i);
记录已被清空"
}
}
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
以上程序段可以实现将记录在D盘里的游戏记录清除的功能,寻找处于D盘的文件,将其内记录的成绩清除,随后用System.out.println输出语句将记录已被清空的口令告知用户。
4.2.6错误跳转的具体算法
try{
if(raf!
=null)
raf.close();
catch(IOExceptione)
e.printStackTrace();
以上程序段通过try…catch语句实现错误状态下的跳出动作。
猜数游戏源程序如下:
)){
//i记录输入数字的次数
if(n<
你猜的数字偏小"
elseif(n>
你猜的数字偏大"
elseif(n==number)
恭喜你,猜对啦!
System.exit(0);
catch(IOExceptione)
Finally
{
publicstaticvoidmain(String[]args)
intnumber=(int)(Math.random()*100);
gamer=newgame();
r.operate();
Strings="
Try
while(s!
{
s=br.readLine();
if(s.equals("
enter"
))//输入“enter”进入游戏;
))//输入“exit”退出游戏;
record"
))//输入“record”打印最新的猜数字记录;
elseif(s.equa