设计一个GUI猜数字游戏程序Word文件下载.docx
- 文档编号:21761862
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:9
- 大小:53.42KB
设计一个GUI猜数字游戏程序Word文件下载.docx
《设计一个GUI猜数字游戏程序Word文件下载.docx》由会员分享,可在线阅读,更多相关《设计一个GUI猜数字游戏程序Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
1设计时间:
2011年6月6日——2011年6月10日
2设计目的:
目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。
3设计任务:
该游戏可以由程序随机产生四个0到9之间的整数,且不重复。
玩游戏者通过由用户输入四个数字来匹配上面所产生的数字。
A表示位置正确且数字正确,B表示数字正确而位置不正确。
假设随机数据为3792时,分析如下
数据:
3792
输入:
12340A2B
56780A1B
08670A1B
97861A1B
17942A0B
27932A2B
37924A0B
4设计内容
4.1概要设计:
本段代码中主要有GuessNumber和ActionHandler两个类,程序中设置了a,b两个变量作为对与错数量的显示,并且设置了一个计数器count为所猜次数进行计数,设置了监听接口ActionAHandler类来实现,并且用for循环和if语句来为变量I,j服务。
后面设置了一个异常处理,使用try和catch来捕获异常。
使用GUI技术实现猜数字和游戏的图形界面。
4.2自定义类及接口说明:
类名:
GuessNumber
父类:
JFrame
作用:
实例化对象
主要成员变量:
intA=0//位置和树枝都正确的个数
intB=0//数值正确位置不正确的个数
intcount//所猜次数计数器
int[]Random=newint[4]//正确的四个数字
int[]Enter=newint[4]//你猜的四个数字
privateJTextFieldtf_1//定义一个文本区域-用户输入区
privateJLabellb_1,lb_2//定义两个标签——信息显示区
privateJButtonbtn_1//游戏按钮
主要成员方法:
publicGuessNumber()//构造方法
privatevoidnewi()//产生四个不相同的数
catch(Exceptione)//捕获例外
publicvoidactionPerformed(ActionEventevent)//设置监听器
setText(“”)//清空文本区域
4.3程序源码
4.3.1程序
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassGuessNumberimplementsActionListener{
inti,j;
intA,B;
inta,b,c,d,x,z,y=8;
intRandom[]=newint[4];
intEnter[]=newint[4];
TextFieldEnterNum=newTextField(18);
TextAreashow=newTextArea(5,1);
JFramef=newJFrame();
JButtonbutton1;
publicvoidRandomnum(){
for(b=0;
b==0;
)
{
for(i=0;
i<
4;
i++)
Random[i]=(int)(10*Math.random());
for(j=0;
j<
=i;
j++)
if(Random[i]==Random[j]&
&
i!
=j)
{i=5;
break;
}
elseif(i==3&
j==3)
b++;
}
}
publicvoidaa(intz){
a=z/1000;
b=z/100-10*a;
c=z/10-100*a-10*b;
d=z-1000*a-100*b-10*c;
publicvoidpeidui(){
A=0;
B=0;
if(Random[i]==Enter[j])
if(i==j)
A++;
else
B++;
show.append("
\n"
+A+"
A"
+B+"
B"
+Enter[0]+Enter[1]+Enter[2]+Enter[3]);
while(true){
if(y!
=0){
你还有"
+y+"
次机会!
"
+"
);
y--;
else
你猜错了,请重新游戏!
\n正确结果是:
+Random[0]+Random[1]+Random[2]+Random[3]);
break;
if(A==4&
B==0){
恭喜你猜对了!
publicGuessNumber(){
Randomnum();
Containern=f.getContentPane();
n.setLayout(newBorderLayout());
button1=newJButton("
确定"
button1.addActionListener(this);
n.add("
North"
show);
West"
EnterNum);
East"
button1);
f.pack();
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
publicvoidactionPerformed(ActionEventn){
if(n.getActionCommand()=="
){
try{
x=0;
intz=Integer.valueOf(EnterNum.getText());
aa(z);
Enter[0]=a;
Enter[1]=b;
Enter[2]=c;
Enter[3]=d;
}catch(Exceptionm){
请检查输入值的格式!
x=1;
if(EnterNum.getText().length()!
=4)
{show.append("
请输入四位数字!
elseif(x==0){
for(i=0;
{if(Enter[i]==(Enter[j])&
请输入4不同的数字!
i=5;
peidui();
publicstaticvoidmain(String[]args){
newGuessNumber();
4.3.2程序运行与调试
1.运行界面
2.错误调试
(1)在ActionHandler类中try语句出现错误。
原因:
try语句单独使用。
如何解决:
加入catch捕获异常,与try搭配使用。
(2)在GuessNumber类出现错误。
少打了一个}。
在末尾加上}
(3)0与O的混淆。
0与O不好区别。
将打错的0改为O。
(4)在ActionHandler类中没有创建number对象。
由于代码较多,比较复杂,所以在写代码是遗忘。
创建int型的number对象
(5)在ActionHandler类中没有实现接口。
没有实现ActionHandler监听。
定义类时后面加上implementsActionHandler
(6)if语句语法错误。
if()后加了。
删除。
(7)在GuessNumber类newi()方法中出现忘记设置返回值类型错误。
没有设置返回值类型,编译时不识别。
加上void,使此方法没有返回值。
5总结与展望
进行了几天的课程设计,经过反复的修改,我的猜数字程序终于得以完成,Java是这学期才开的一门课,语法较多,对于我这个入门者来说有点困难,尤其是GUI部分,听课的时候就觉得那一章比较杂乱,一直也没有掌握太好,所以设计出来的程序界面实现较少,不是很好看。
本次设计使得我在GUI和类,接口这几方面的掌握能力有了提高,在使用面向对象语言编写程序这方面,我有了深深的体会,曾经听说过一句话,学习java“不走弯路,就是捷径”。
进行了课程设计后,我更加感觉到了这句话的深刻内涵。
Java是一种平台,也是一种程序设计语言,如何学习好程序设计是非常重要的。
学习Java要脚踏实地,快餐式的学习方法不可取,要从平日里就勤加练习,多多实践,只要实践的多,写代码才能熟练。
参考文献
[1]Java程序设计作者:
刘万军,梁清华,王松波等清华大学出版社,2006
[2]王路群,Java高级程序设计。
北京:
中国水利水电出版社,2006
[3]朱福喜编著,Java语言习题与解析。
清华大学出版社,2006
成绩评定
成绩教师签字
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 一个 GUI 数字 游戏 程序