基于java的坦克大战游戏的设计与实现--毕业论文--【毕业论文】

简介: 基于java的坦克大战游戏的设计与实现--毕业论文--【毕业论文】

本系列校训

互相伤害互相卷,玩命学习要你管,天生我才必有用,我命由我不由天!

毕业论文不怕难,毕业设计来铺垫!打磨技术精心写,拿证之后尽开颜!

毕设的技术铺垫

文章主体层次

摘要:

示例

选题的输入元素:

1 时代需求

(最好要找2年内的政治性期刊来引文,如果引入书籍的话那就太旧了)

2 你的毕设受众的需求

有道云:出现问题才会有解决问题的人,才会出现解决问题的方案。

摘要:随着人们对生活质量的要求一天比一天高,为了让人们更好地开掘自身的智慧,游戏就此进入了大众的视野,在人们的生活中有着重要的位置,已然变得必不可少。游戏产业推动高新技术不断升级,极大地促进了经济的增长,推动了“第四产业”的经济腾飞。坦克大战游戏是童年时期经常玩的经典游戏,我们对它都十分了解。游戏通过分析JAVA游戏开发和代码设计,用Eclipse软件开发了坦克大战游戏,运用接口技术,使一个类能够实现多个接口,使用套接字Socket来完成client端和server端的连接。玩家通过连接访问进入游戏,通过操纵坦克来守卫基地,玩家还可以获得超级武器来提升坦克的属性,摧毁全部敌方坦克来取得胜利,操作非常简单,还具有非常高的普遍率,适合所有人群玩。该游戏既满足了人们的个性化需求,也让玩家在游戏过程中丢掉烦恼,尽情地释放压力。
• 1

关键词:Java 坦克大战游戏 Socket

摘要的写法

★摘要:

又称概要、内容提要,是以提供文献内容梗概为目的,不加评论和补充解释,简明、确切地记述文献重要内容的短文。

◆位置:

题名和作者之后,论文正文之前。

摘要的构成要素

1、目的:研究的对象,范围,目的。

2、方法:采用了哪些手段、研究方法。

3、结果:陈述论文研究成果、新见解等。

4、结论:通过对问题的研究所得出的重要结论、主要观点、理论意义或实用价值等。

摘要中存在的主要问题有:

a.无独立性与自明性;

b.要素不全,或缺目的,或缺方法;

c.繁简失当,多数过于简单化;

d.重复题名已有的信息:

e.把引言中出现的内容写入摘要;

f.习惯使用“本文介绍了…作为摘要开头。

(个人体会)

构成要素中的“方法”部分,在理工类论文摘要中应是不可缺少的部分。在法学类论文摘要中,我个人觉得不一-定是每一-篇文章的必备项:如果有就应当指出,如“以科斯定理为分析视角”或“根据双边市场理论”等;如没有,则不可生搬硬套。其他的构成要素应当具备。

● 下面的举例,我个人认为比较规范。

例1、政府引导社会管理:复杂性条件下的社会治理摘要20世纪后 期以来,复杂性成为社会生态的基本特征,

由此产生的社会的开放性和社会治理格局的多元化对传统的控制导向的政府社会管理模式提出了严峻挑战。[对象]为了走出控制失灵的困境,政府必须扬弃社会管理的简单思维,确立一一种复杂性思维,[ 方法]来指导政府社会管理职能由控制到引导的转变。[目的]区别于传统的控制导向型职能,引导型职能在应对社会复杂性方面具有行动主动性、战略规划性、智慧监管性和灵活适应性等属性。[结果]对于当前的社会治理实践,中国政府在履行引导,职能的过程中应当抓住核心环节,把重心放在抓好规划和“培育等方面。[结论]

  • 摘要由目的、方法、结果和结论四部分组成。
    目的部分应简要说明研究的目的,说明提出问题的缘由,表明研究的范围及重要性;方法部分应说明研究课题的基本设计,使用了什么材料和方法,如何分组对照,研究范围以及精确程度,数据是如何取得的以及经过何种统计学方法处理;结果部分要列出研究的主要结果和数据,有什么新发现,说明其价值及局限,叙述要具体、准确,并需给出结果的可信值和统计学显著性检验的确切值;结论部分应简要说明、论证取得的正确观点极其理论价值或应用价值, 是否值得推荐或推广等。说白了,摘要就是你文章的骨架。
  • 告诉你-一个懒人的办法
    第- -句写目的,也就是你这篇文章要解决的问题和提出这个问题的原因,然后是“本文通过… .的方法,阐述…论证了…得出…记得
    摘要最好200字左右为宜,不宜过长。

引言:

随着社会和时代的进步,来自各个方面的压力让人没精打采,为了分解人们的压力,休养那变得疲顿的头脑和劳累的身心,特设计了坦克大战小游戏,游戏操作非常容易,只要将手指放在键盘上敲击相关的游戏键就可以玩,在玩游戏的过程中能够体验现实生活中没有的快乐,既有利于身心健康,又不会影响工作和学习。本游戏采用的是基于J2SE标准平台的java编程技术,在Windows

7操作系统中使用Eclipse软件进行代码编译,通过方法Graphics()来进行游戏地图界面的绘制,使用了接口技术使一个类能够实现多个接口,使用套接字Socket来完成client端和server端的连接。

Java是一项面向对象编程语言,既包含了C语言的全部优点,又具有面向对象,跨平台性,安全性等特点,是现在程序设计中较为常用的编程语言。Java具备了“一次编译,处处运行”的特点,很好的体现了其跨平台性和面向对象的特点,允许程序员用感性的思路来进行繁杂的编程。

Eclipse是一个基于java的开放源代码的可扩展开发平台,是知名的跨平台的自由集成开发环境(IDE)Eclipse是一个基于,还捎带了一个标准规范的插件集,包含了Java开发工具(JDK),Eclipse因为安装不同的插件,所以它支持不同的计算机语言,主要用来Java语言开发。

Graphics类是软件包java.awt(其全部类都用来用户界面的创建和图形图像的绘制)下的类,它同意一个应用程序绘制到组件,以及在屏幕图像上进行绘制。Graphics

对象封装了 Java 支持的基本呈现操作所需的状态信息。Graphics()方法构造了一个新的 Graphics 对象, 由于

Graphics类是抽象类,因此Graphics()方法不可以被直接调用,此构造方法是图形上下文的默认构造方法,通过在组件上调用

getGraphics() 来创建图形上下文,或者从其他图形上下文获取。

系统分析

  • 需求和技术分析:
  • 功能分析

总体设计

总体功能

表1 游戏服务器端各类功能表 ServerModel 创建主机 ServerView 设置服务器端图形界面的面板信息

ServerControler 处理来自服务器视图框架的输入 enemy 创建敌方坦克 player 设置玩家的得分及其显示位置等信息

drawingPanel 创建和设置服务器端界面窗口 powerUp 加快子弹速度并提升火力 feedbackHandler 判断指令并执行

Actor 创建接口 base 创建并设置基地 Ticker 创建并设置时间信息 bullet 创建子弹并设置属性 bomb 设置爆炸效果

river 创建河道并设置属性 grass 创建草坪并设置属性 Steelwall 创建铁墙并设置属性 wall 创建普通墙并设置属性

level 创建关卡

表2 游戏客户端各类功能表 ClientModel 设置与服务器的连接 ClientView 设置客户端端图形界面的面板信息

ClientControler 负责处理来自客户端视图框架的输入 drawingPanel 设置客户端窗口界面

instructionHandler 判断指令并执行 shield 设置玩家坦克防护盾 normalObject 创建并描绘其他的物体对象

level 创建关卡 base 创建并设置基地 Ticker 创建并设置时间信息 bullet 创建子弹并设置属性 bomb 设置爆炸效果

river 创建河道并设置属性 wall 创建普通墙并设置属性 1、需要有图形用户界面,让用户能看到游戏给出的反馈。

2、不同队伍的坦克,须显示不同的外观,以区分敌我。 3、坦克能够开火,攻击敌方,但不能攻击队友。

4、需要有不可被子弹穿透的墙体,以及墙体有可被摧毁和不可被摧毁两种。 5、敌方坦克有生命值,并非被击中一次就会爆炸。

6、游戏结束时会有胜利或失败场景 7、游戏结束后可重新开始。

总体功能如图1所示

坦克大战总体流程图

详细设计

放关键代码

  • 基地的设计
  • 敌方坦克的设计
  • 河道、草坪的设计
  • 墙与铁墙的设计
  • 界面窗口的创建
  • 子弹功能设计
  • 坦克功能设计
  • 服务器设计
  • 其他各设计

游戏测试

结论

该游戏是基于Java语言,使用Eclipse软件开发的一款坦克大战游戏, 该游戏包括对面板功能、坦克功能、子弹功能的设计,在面板功能中对双方坦克、基地、河道、草坪、普通墙与铁墙等地图元素进行创建并设置其属性,还实现了页面按钮功能,玩家可以点击按钮来实现相应的功能。在坦克功能中,设计了操作玩家坦克的方法,还设置了超级武器,玩家吃掉后会获得特殊技能。在子弹功能中,设置了子弹打中不同物体对象产生的不同效果。另外,还实现了服务器与客户端的连接,加载关卡等功能,玩家再游戏面板中可以实时查看自己坦克的生命数量和分数以及敌方坦克的数量,基本上完成了设计任务。总体来说,本游戏有一定的逻辑性和复杂性,对玩家有一定的吸引力。

在设计与实现游戏的过程中,遇到一些逻辑问题和技术故障都是在所难免的,例如如何加载地图关卡和物体对象等、监探坦克与地图元素是否碰撞等,都是需要完全克服的。该游戏还需要进一步的优化,需要在更大的程度上提升敌方坦克的智能化、在地图中添加物体对象来增强可玩性等等。

参考文献

主要设备:电脑。

软件:eclipse软件。

方法措施:

利用学到的java基础应用程序知识实现需求分析上的功能模块,并在设计与实现时分析遇到的问题并解决,对实现的模块进行测试,查找不足,尽量做到满足用户要求,最后按照论文要求编写文档。

参考文献

一般来说,前3篇是近2年的。写论文的时间占半年左右。要留出这个时间差,然后,后面的就是技术相关,10篇以上,英文文献 5篇以上。

小技巧

数量最好是要超过一页,能过页最好。为什么呢,因为论文是一种比较正式的文体,一般来说大的节(WORD里用分节符)分出来的,都会居于论文的奇数页,也是书籍的右手边的页。

例:

[1] 易向东,陈蓓,万英.Java游戏编程解析[M],程序员杂志[M].北京:电子工业出版社.2009.

[2] 张广彬,王小宁,高静.Java课程设计案例精编[M].北京:清华大学出版社,2011.

[3] 袁然,郑自国,邹丰义.Java案例开发集锦[M].北京:电子工业出版社.2005.

[4] 陈炜,张晓蕾,侯燕萍 ,何凌云.Java软件开发技术[M].北京:人民邮电出版社.2005.

[5] 陈为, 周骥 ,杨柯. 面向对象的游戏开发[M].北京:DEARBOOK出版社,2008.[6] 谭浩强,程龙,杨海兰等. Java编程技术[M].北京:人民邮电出版社. 2003.

[7]雍俊海.Java程序设计教程[M].北京:清华大学出版社,2014.

[8] 爱克尔(著),王美(译).Java编程思想[M]. 北京:机械工业出版社,2001.

[9] 邱仲潘. Java游戏编程[M].北京:机械工业出版社,2006.

[10] 陈悦,夏敏捷,葛丽萍. Java游戏编程原理与实践教程[M].北京:人民邮电出版社.2013.

[11] 邓良松,刘海岩,陆丽娜.软件工程[M].第二版.西安:西安电子科技大学出版社,2004.

[12]赵强,乔新亮. J2EE应用开发[M]. 电子工业出版社,2003.

[13]夏庆亮. Java应用开发指南[J]. 清华大学出版社,2010.

[14]耿祥义,张跃平. Java面向对象程序设计[J]. 清华大学出版社,2010.

[15]杨绍方. Java编程实用技术与案例[J]. 清华大学出版社,2000.

[16]明日科技. Java编程全能词典[J]. 电子工业出版社,2010.

[17]埃克尔(著),陈昊鹏,饶若楠等译. Java编程思想[J]. 机械工业出版社,2005.

[18]Gary J.Bronson(著),张珑 刘雅文译. Java编程原理[J]. 清华大学出版社,2004 .

[19]Michael Morrison(著),徐刚,于健,薛雷译. 游戏编程入门[J]. 人民邮电出版社,2005.9.

[20]Wendy Stahler(著),冯宝坤,曹英译. 游戏编程中的数理应用[J]. 红旗出版社,2005.

[21]克罗夫特(著),彭晖译. Java游戏高级编程[J]. 清华大学出版社,2005.

配套资源

基于java的坦克大战游戏的设计与实现-毕业论文

https://download.csdn.net/download/dearmite/88110606

相关文章
|
5月前
|
Java 索引
Java实现扑克牌游戏 | 随机发牌 ( 过程拆分详解+完整代码 )
Java实现扑克牌游戏 | 随机发牌 ( 过程拆分详解+完整代码 )
132 3
|
2月前
|
开发框架 IDE Java
java制作游戏,如何使用libgdx,入门级别教学
本文是一篇入门级教程,介绍了如何使用libgdx游戏开发框架创建一个简单的游戏项目,包括访问libgdx官网、设置项目、下载项目生成工具,并在IDE中运行生成的项目。
63 1
java制作游戏,如何使用libgdx,入门级别教学
|
4月前
|
人工智能 算法 Java
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
54 1
|
4月前
|
存储 Java
【Java】Java学生成绩管理系统(源码+论文)【独一无二】
【Java】Java学生成绩管理系统(源码+论文)【独一无二】
173 0
|
4月前
|
SQL Java 数据库连接
【Java】Java Swing 图书管借阅管理系统(源码+论文)【独一无二】
【Java】Java Swing 图书管借阅管理系统(源码+论文)【独一无二】
272 0
|
6月前
|
Java
使用java编写猜数字游戏
使用java编写猜数字游戏
|
3天前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者
|
5天前
|
安全 Java Kotlin
Java多线程——synchronized、volatile 保障可见性
Java多线程中,`synchronized` 和 `volatile` 关键字用于保障可见性。`synchronized` 保证原子性、可见性和有序性,通过锁机制确保线程安全;`volatile` 仅保证可见性和有序性,不保证原子性。代码示例展示了如何使用 `synchronized` 和 `volatile` 解决主线程无法感知子线程修改共享变量的问题。总结:`volatile` 确保不同线程对共享变量操作的可见性,使一个线程修改后,其他线程能立即看到最新值。
|
5天前
|
消息中间件 缓存 安全
Java多线程是什么
Java多线程简介:本文介绍了Java中常见的线程池类型,包括`newCachedThreadPool`(适用于短期异步任务)、`newFixedThreadPool`(适用于固定数量的长期任务)、`newScheduledThreadPool`(支持定时和周期性任务)以及`newSingleThreadExecutor`(保证任务顺序执行)。同时,文章还讲解了Java中的锁机制,如`synchronized`关键字、CAS操作及其实现方式,并详细描述了可重入锁`ReentrantLock`和读写锁`ReadWriteLock`的工作原理与应用场景。
|
5天前
|
安全 Java 编译器
深入理解Java中synchronized三种使用方式:助您写出线程安全的代码
`synchronized` 是 Java 中的关键字,用于实现线程同步,确保多个线程互斥访问共享资源。它通过内置的监视器锁机制,防止多个线程同时执行被 `synchronized` 修饰的方法或代码块。`synchronized` 可以修饰非静态方法、静态方法和代码块,分别锁定实例对象、类对象或指定的对象。其底层原理基于 JVM 的指令和对象的监视器,JDK 1.6 后引入了偏向锁、轻量级锁等优化措施,提高了性能。
21 3