人机猜拳小游戏JAVAWord文档格式.docx
- 文档编号:21713441
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:14
- 大小:164.05KB
人机猜拳小游戏JAVAWord文档格式.docx
《人机猜拳小游戏JAVAWord文档格式.docx》由会员分享,可在线阅读,更多相关《人机猜拳小游戏JAVAWord文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
四)程序中所有类说明-3-
三、项目实现-4-
四、运行结果-8-
五、总结与心得-10-
六、参考文献-12-
一、背景与意义
游戏是全球最大的娱乐经济项目之一,已经被命名为“第九艺术”。
而由“游戏”派生出来的职业,除了软件开发外,游戏包装宣传推广、攻略指导、网络游戏管理员和职业游戏玩家等,已成为了一系列专门的岗位。
面对游戏产业如此巨大的市场空间,国内各大城市纷纷加大了这方面的人才培养,中国的游戏人才培训已随着游戏行业的总体发展开始逐步迈入了正轨。
虽然说中国的游戏行业开始逐步的迈入了正轨,但是现今,游戏人才出现严重的瓶颈时期,高校的扩招、金融危机的侵袭直接影响着我们最关心的就业问题,但是另一方面游戏人才的缺乏又直接制约着行业的发展,这就更加严格了对社会培训机构的稳定性和正规性的要求。
在我国,游戏人才培养体系还未健全,部分开设了相关专业的高校,游由于理论和实践的脱离无法完全满足网游公司对人才的需求。
所以,就中国目前的市场分析来看,加强游戏产业必须在多渠道人才培养体系上加快突破,尽快建立起多渠道人才培养体系,来满足社会对游戏人才的需求。
通过Java程序设计的一些重要理论基础来实现“人机猜拳小游戏”的功能。
通过利用所学到的计算科学的理论知识,提高解决实际问题的能力,增强运算、编程和使用技术资料的技能,通过实际问题的分析设计、编程和调试,掌握应用软件的分析方法和工程设计方法,能正确阐述设计和实验结果,逐步建立正确的全局观念。
通过本次程序设计,我掌握了Java语言的基本运用,提高了理论结合实际能力。
二、设计原理及方案
程序总体介绍和设计要求程序使用J2SE语言编写,使用标准JDK平台编译和运行。
程序使用已创建的PairOfDice类,设计并实现一个类来玩游戏。
根据游戏规则玩家将和电脑进行比赛。
创建小游戏,实现电脑与玩家之间互动猜拳这主要功能,通过按钮的方式,与电脑进行猜拳游戏,电脑随机出拳并能显示设置的图片,增加美观。
一)方案:
1)界面的左侧是电脑或者玩家的名字,让界面看起来一目了然。
2)系统界面的中间是电脑或者玩家出拳的图片。
图片可以生动形象得表示出电脑或者玩家出的拳,显示的图片在对话框中也相得益彰。
在图片的下方会显示,人机猜拳以后的输赢。
3)界面的右侧是三个剪刀石头布的按钮。
玩家通过按钮出拳,电脑随机出拳,猜拳的输赢结果在下方显示。
二)设计思路:
在设计游戏时,我们要充分考虑到剪刀石头布游戏的特性,以及多种技术的实现:
⑴构造创建服务器端和客户端
⑵创建输入输出流
⑶编写服务器端处理数据的线程方法
⑷绘制游戏界面
⑸绘制界面上的提示
采用此方法设计使程序简洁明了,使绘制游戏界面时简单化,更加易于游戏的实现,程序也更易于读懂。
如java中得到输入输出流的方法:
//调用客户端的getInputStream()方法
Inputs=newBufferedReader(newInputStreamReader(client.getInputStream()));
通过调用此方法获取从服务器得到的数据
调用客户端的getOutputStream()方法,通过此方法把客户端的数据传输给服务器。
三)工作流程图:
四)程序中所用类说明:
(1)用户自定义类
类名:
SmallGame
作用:
实例化对象
主要成员变量:
FramemyFrm//定义主窗体
TextAreamyText//定义文本编辑区
ButtonBfontOK,Bfind,Breplace,Bnext,Bcancel//定义和创建各按钮
LabelLfLr,Ls//定义和创建各标签
MenuBarMbbar//定义和创建主菜单
MenuMfile,Medit,Mformation,Mhelp//定义和创建主菜单中的选项
ToolkittoolKit
ClipboardmyCB//剪切板对象
FileDialogmyFDlg//定义文件对话框
主要成员方法:
publicvoidinit()//初始化各部件菜单的定义和事件的监听
publicvoiddisplayEdit()//显示窗体及调用Time中的schedule方法
publicvoidwindowClosing()//关闭窗体
publicvoidsave//保存文件方法
.内部类类名:
KeyEvents
实现菜单的事件的响应功能
继承的父类:
KeyAdapter
无
成员方法:
actionPerformed()、keyPressed()
(2)用户自定义类与Java类的继承关系图如下:
三、项目实现
首先建立一个Test类,如下:
importjava.awt.Color;
importjava.awt.Image;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.AbstractButton;
importjavax.swing.ImageIcon;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JOptionPane;
importjavax.swing.JPanel;
publicclassTestextendsJFrame{
JLabeljl,jl1;
finalJLabeljl2,jl3;
JLabeljl4;
publicStringperson;
publicStringm;
intj;
inti;
finalString[]arr=newString[3];
publicvoidWin(Stringperson){
arr[0]="
石头"
;
arr[1]="
剪刀"
arr[2]="
布"
person=arr[j];
i=(int)(Math.random()*3);
Stringc=arr[i];
//判断输赢
if(c.equals(person)){
jl4.setText("
平手"
);
}elseif(c.equals("
)&
&
person.equals("
)||c.equals("
)&
)){
jl4.setText("
你赢了"
}else{
你输了"
}
}
publicTest(){
JFramejf=newJFrame();
this.setSize(400,300);
this.setTitle("
猜拳游戏"
this.setLayout(null);
jl=newJLabel("
电脑出的是:
"
jl.setBounds(50,50,100,50);
this.add(jl);
jl1=newJLabel("
你出的是:
jl1.setBounds(50,120,100,50);
this.add(jl1);
//电脑的出的拳标签
jl2=newJLabel();
jl2.setBounds(150,50,100,50);
this.add(jl2);
//我出的拳的标签
jl3=newJLabel();
jl3.setBounds(150,120,100,60);
this.add(jl3);
jl4=newJLabel("
jl4.setBounds(150,200,100,50);
this.add(jl4);
//按钮
finalJButtonbtn=newJButton("
btn.setBounds(280,50,60,40);
this.add(btn);
finalJButtonbtn1=newJButton("
btn1.setBounds(280,105,60,40);
this.add(btn1);
finalJButtonbtn2=newJButton("
btn2.setBounds(280,160,60,40);
this.add(btn2);
//按钮事件监听
btn.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
//如果你鼠标点击的是石头按钮
j=0;
Stringb=btn.getActionCommand();
jl3.setText(b);
jl3.setIcon(newImageIcon(MyImg.class.getResource(j+"
.jpg"
)));
Win(person);
Test.this.jl2.setIcon(newImageIcon(MyImg.class.getResource(i+"
Test.this.jl2.setText(arr[i]);
System.out.println(arr[i]);
}
});
btn1.addActionListener(newActionListener(){
j=1;
Stringb1=btn1.getActionCommand();
jl3.setText(b1);
//System.out.println(b);
btn2.addActionListener(newActionListener(){
j=2;
Stringb2=btn2.getActionCommand();
jl3.setText(b2);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setResizable(false);
publicstaticvoidmain(String[]args){
Testt=newTest();
}
再建立一个名为MyImg的类,把下面几张图片放到该类下
图片名称自左向右依次为布、石头、剪刀。
4、运行结果
图1开始界面
图2游戏过程
图3游戏过程
图4游戏过程
五、总结与心得
个人分析:
程序从最初的黑盒子运行到后来的可视化,经过了一段“设计的思考”:
如何把游戏表现出来、如何让用户最快上手、如何完善游戏。
这属于需求分析的范畴。
在设计中不断体会系统的需求分析需求满足的重要,才会做出好的程序。
在程序实现的过程中,遇到的困难也不少。
不提编写的小错误,有所学的知识不够用的尴尬,有用户界面的多媒体实现的难处,不一而足。
于是我通过不断的学习和纠正错误,得到了最后的源程序。
后来是课程设计,并且要做好各个环节的分析,用语言表达出来。
这相当有难度。
也许在此之前已经把程序脱个精光,但是要把各个环节拆开并且详细描述就仿佛要把程序继续脱。
当然最终是“脱”出来了,也许还不尽如人意,但已能大致表达程序设计的思想了。
虽然提交时间推延到了最后,但是我仍然感觉时间相对紧张(思想紧张?
),所以难免出现不足之处,有可完善的,也有个人能力之外的。
已知的列举如下:
1.出招过程未能表现;
2.没有开始菜单以及结束菜单;
3.不能由键盘控制;
4.在最大化窗口后出现部分界面不能显示;
5.界面还可更加完善;
6.应更多学习成熟游戏的优点,改善游戏环境;
7.编程还未能做到完全模块化,这是在课程设计中发现的;
总结语:
作为率先推广面向对象思想的语言,java却不是革命性的东西,所有现有的java的思想都是继承自其他的语言和技术,没有什么革命的地方。
但是java在真正推动面向对象编程思想方面是功不可没的。
使用java编程,你无需考虑到向后兼容什么语言的问题,它是重新建立的语言,你在掌握这门语言之前,你必须将自己的编程思想由过程编程彻底转向面向对象编程,因为每个java程序,本身就是一个类,你编写任何java程序,你都不自觉的在构造一个对象模板,没有第二条道路,只能是面向对象编程。
相对于另一门面向对象的语言C++而言,java在面向对象的贯彻方面要比C++彻底。
有人说“C++是打着面向对象的幌子,干着过程编程的勾当”或许不是言过其辞,C++继承了C的面向过程的一些特性,而java几乎都用了面向对象的思想来实现程序。
但是无论是c++还是java都有可能走过程编程的老路,java降低的过程编写的可能性,但是如果你没有具备面向对象的编程思想,你还是可能走面向过程的老路的。
程序中生成了几个对象,均为较简单的对象,而却难免会步入面向过程的老路,但这看似是却是难免的:
实现游戏规则,就要把过程写出来。
最近接触了许多软件工程方面的知识,深深感到程序设计要走的路之漫长。
理解课程设计如果想要做好,绝不是一朝一夕的事。
本次毕业设计的每一个阶段:
系统分析、总体设计、编码实现、调试与测试,都是我在不断学习的情况下完成的。
而在这些过程中不断体会软件设计的各个步骤、各个环节,又转到不断学习中去。
古语有云“工欲善其事,必先利其器”,当初朦朦胧胧地写了代码,就体会到学习java仍然是处于初步阶段,远远不够“善其事”。
只是java的学习是要不断把所学和所用结合的,一次课程设计可以体会到知识的不足,而后补充所需的知识,再进行实践,再发现不足,如此不断,才能慢慢体会这门语言的精髓。
再如软件设计。
毋庸置疑,本次课程设计只是让我“摸一下软件设计”。
如专家所说,软件文档的编写是应当占了软件设计的90%的时间精力的,文档写好了,随便一个程序员都能做出软件来。
可见软件文档的重要性。
对于只是“了解软件工程”的我们来说,编写文档莫过于一件痛苦的事――并没有系统地学习过,却要一点一点地用出来。
看过大三的师兄的课程设计,洋洋洒洒的一本书,不禁为要走的路之漫长艰辛感慨不已。
但是倘若是真的有兴趣有毅力,这些应当不在话下。
是故,本次课程设计带给我的不仅仅是为未来打基础这么简单的收获,更多的是一种认识。
小至一门课程、一门语言,大至一门专业、一段人生,若不是热情主动刻苦地学习,将一无所获。
六、参考文献
JAVA开发实战宝典--------编著:
李钟蔚出版社:
清华大学出版社
JAVA面向对象编程--------编著:
孙卫琴出版社:
电子工业出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人机 猜拳 小游戏 JAVA