JAVA课设华容道总的Word下载.docx
《JAVA课设华容道总的Word下载.docx》由会员分享,可在线阅读,更多相关《JAVA课设华容道总的Word下载.docx(13页珍藏版)》请在冰点文库上搜索。
![JAVA课设华容道总的Word下载.docx](https://file1.bingdoc.com/fileroot1/2023-4/30/e22abb08-ce27-4c3d-a285-71079670a576/e22abb08-ce27-4c3d-a285-71079670a5761.gif)
6.小程序能够自由的缩小,放大,关闭。
三、设计思路
1.首先是界面设计,该界面主要包括十个人物按钮(马、曹操、关羽等)以及旁边的四个边框按钮和重新开始按钮。
对于人物按钮,创建Button按钮的子类,在该类中定义按钮的一些新的属性和焦点事件监听器,如:
按钮的标签名、按钮的颜色、按钮的排号(如这里有十个人物按钮,从1排到十,在程序中可以依靠这个属性区分人物按钮)、按钮颜色、按钮获得或失去焦点事件。
同时在设计该界面时要考虑到各个按钮的位置、大小等情况。
2.对界面上的各人物按钮添加相应的相应事件
焦点事件:
通过焦点事件各个按钮的是焦点。
鼠标事件、键盘事件:
通过这两种事件去完成界面上各人物按钮的移动。
对重新开始按钮定义动作事件(ActionEvent)完成界面初始化功能也就是各人物按钮重新归位。
四、详细设计
详细设计主要是关于代码,编程思想和程序实现的具体描述。
其中包含具体的运行界面,操作界面,运行结果图,和运行前图形界面。
此外,还有一定的流程展示,各个运行模块的结构关系展示,对华容道小游戏的具体实现的具体展示,以及部分主要的代码的展示和分析说明,编程思想的体现。
1.结构建立:
在road的project下建立road包中建立Road类,如下图
图4-1在road的project下建立road包中建立Road类
2.上机模块建立
1、界面设计
界面设计主要是根据功能要求构建界面,界面中的每个元素均应有其作用,以支持功能的实现,界面设计还要考虑到界面风格的一致、符合一般Applet的图像协调。
设计应简洁实用,大方美观,界面协调,便于使用者进行操作,按钮布局合理,大小适中,还应具有使用方法的温馨提示,告诉使用者如何运用程序。
图4-2华容道小游戏运行界面
程序构造:
利用以下代码对按钮构造name=s;
this.number=number;
left_x=x;
left_y=y;
width=w;
height=h;
setBackground(Color.gray);
当人物没有获取焦点的时候为灰色。
road.add(this);
addKeyListener(road);
setBounds(x,y,w,h);
addFocusListener(this);
rect=newRectangle(x,y,w,h);
载入事件并响应。
优化程序:
根据程序员自己的要求设计更为美观的图形界面,创造更加丰富的按钮颜色,和其它颜色,达到优化图形界面的目的。
具体实现方法如下:
publicvoidfocusGained(FocusEvente){ColormyColor=newColor(20,100,180);
this.setBackground(myColor);
}
程序员可以更改括号中的数值来改变按钮获取焦点后的颜色,达到美观的目的。
此处我选择了(20,100,180)获取颜色为浅蓝色。
程序初始化:
对华容道小游戏程序中的人物、边框、按钮、计步器进行初始化。
Peoplepeople[]=newPeople[10];
Rectangleleft,right,above,below;
//华容道的边界.Buttonrestart=newButton("
重新开始"
);
intcount=0;
TextFieldt=newTextField(20);
//此为计步器的初始化。
界面布局:
对程序中应有的按钮、边框、计步器显示进行合理的安排,将其放在图形界面中的适当位置。
t.setBounds(180,330,20,20);
t.setEnabled(false);
restart.setBounds(105,15,100,25);
restart.addActionListener(this);
//以上为对重新开始按钮进行的坐标设置。
people[0]=newPeople(0,"
曹操"
104,54,100,100,this);
people[1]=newPeople(1,"
关羽"
104,154,100,50,this);
people[2]=newPeople(2,"
张飞"
54,154,50,100,this);
以及people[8]=newPeople(8,"
兵"
104,204,50,50,this)people[9]=newPeople(9,"
154,204,50,50,this);
等是为人物进行的位置设置。
还有left=newRectangle(49,49,5,260);
above=newRectangle(49,49,210,5);
都是对坐标位置进行设置。
键盘控制操作获得焦点的人物活动:
图4-3控制兵向下
图4-4控制兵向右
图4-5控制兵向左
图4-6控制兵向上
键盘事件:
publicvoidkeyPressed(KeyEvente){Peopleman=(People)e.getSource();
//鼠标获取事件源man.rect.setLocation(man.getBounds().x,man.getBounds().y);
if(e.getKeyCode()==KeyEvent.VK_DOWN)
键盘控制向下代码为man.left_y=man.left_y+50;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
count++;
t.setText("
"
+count+"
//此为计步器的代码
for(inti=0;
i<
10;
i++)
{if((man.rect.intersects(people[i].rect))&
&
(man.number!
=i))
{man.left_y=man.left_y-50;
man.rect.setLocation(man.left_x,man.left_y);
count--;
}}
if(man.rect.intersects(below)){man.left_y=man.left_y-50;
}}//以上为判断是否和其它人物或下边界出现重叠,若出现重叠就退回50个单位距离。
键盘控制向上、向左、向右代码和控制向下的代码类似。
使用方法提示:
g.drawString("
使用方法:
10,10);
g.drawString("
点击相应的人物,"
10,20);
按键盘上的上下"
10,30);
左右键进行移动"
10,40);
在图形界面的左上角进行使用方法提示,方便使用者了解华容道小游戏的操作步骤。
能够利用鼠标和键盘进行游戏控制。
程序提高部分:
添加计步器
图4-7计步器初始时刻为空
图4-8当兵向下行走一步时计步器显示为1
图4-9当使用者点击了重新开始的按钮后步数自动归0
计步器的实现;
intcount=0;
TextFieldt=newTextField(20);
创建一个大小为20的文本框,令count为0.
将文本框的位置进行设置
publicvoidkeyPressed(KeyEvente)
{if(e.getKeyCode()==KeyEvent.VK_DOWN
t.setText("
当键盘点击向下操作时,计步器的步数加一。
当和其它人物或下边界出现重叠时,退回50个单位距离后,count就减一
当向左,向右,向上操作时计步器的基本操作和向下一样。
this.count=0;
当点击重新开始的按钮时计步器的步数变为0。
重新开始的实现:
图4-10当游戏进行到难以进行的时候,进行重新开始
图4-11游戏恢复到初始状态
Buttonrestart=newButton("
setLayout(null);
add(restart);
add(t);
restart.addActionListener(this);
对重新开始设置
//当点击重新开始的按钮时步数清零
五、运行调试与分析讨论
图5-1运行的图形界面
经过不断的改进,实现了鼠标获取事件,键盘控制移动事件,对按钮的背景颜色进行修改,使得图形界面更加的美观合理。
对使用者进行操作方法的提示,使得使用者方便操作。
对使用者使用的步数进行记录,对使用者进行提示。
运用了多个类,和继承方法,图形界面设置等多个内容,对华容道小游戏进行编辑,最终完成了这个程序的编辑。
六、设计体会与小结
经过数天时间的不断努力,我终于编成了华容道这个传统的中国小游戏,在编写的过程中,我经常从网上学习一些编程过程中遇到的困难,在编写计步器的时候,出现了按重新开始的按钮计步器无法归零的问题,在同学的帮助下得到了解决。
我还从《Java程序设计导论》和《Java程序设计大全》中获得了对按钮的背景颜色进行更改的方法,受益匪浅。
我体会到学习Java不能闭门造车,必须从多个方面进行不断学习,从各个方面解决问题才能完成好对程序的编写。
七、参考文献
(1)丁振凡.Java语言实用教程(第2版)[M].北京邮电大学出版社.2008.1
(2)丁振凡.Java语言实用教程实验指导(第2版)[M].北京邮电大学出版社.2008.1
(3)杨树林等.Java语言最新实用案例教程(第2版)[M].清华大学出版社.2010.7