傻大方


首页 > 学习 >

JAVA|JAVA程序设计课程设计(论文)坦克大战游戏



按关键词阅读: 程序设计 游戏 java 大战 坦克 课程设计 论文

1、辽 宁 工 业 大 学JAVA程序设计 课程设计(论文)题目: 坦克大战游戏 院(系): 专业班级: 学 号: 学生姓名: 指导教师: 教师职称: 起止时间: 程序设计专题(报告)任务及评语院(系):软件学院 教研室:软件教研室学 号学生姓名专业班级程序设计(报告)题目坦克大战游戏程序设计(报告)任务程序设计专题的任务与要求:(1)掌握Java编程、面向对象的基础知识 。
(2)较熟练地编写Java应用程序Application 。
(3)了解Java的常用标准类库、编程技巧、异常处理 。
(5)联系已学过的内容 , 巩固所学的理论 , 增强独立工作能力 。
(6)通过设计主要使学生有一个独立编写程序的过程 , 对理论学 。

2、习及动手能力都有一个很大的提高 。
(7)通过本次设计 , 进一步培养学生热爱专业的思想 , 同时对本专业综合素质的提高起一个积极的推动作用 。
课程设计过程中 , 要严格遵守实践环节的时间安排 , 听从指导教师的指导 。
正确地完成上述内容 , 记录实习日记 , 规范完整地撰写出课程设计报告 。
指导教师评语及成绩成绩: 指导教师签字: 2009 年 12 月 20 日辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)目 录第1章 课程设计的目的与要求11.1 课程设计目的11.2 课程设计的实验环境11.3 课程设计的预备知识11.4 课程设计要求1第2章 课程设计内容22.1课程设计主要内容22.2概要设计22.2. 。

3、1自定义类说明22.3详细设计42.4测试分析142.4.1程序运行情况142.4.2程序异常处理15第3章 课程设计总结16参考资料17第1章 课程设计的目的与要求1.1 课程设计目的JAVA程序设计是计算机相关专业的必修专业基础课程 , 其实践性、应用性很强 。
实践教学环节是必不可少的一个重要环节 。
本课程的程序设计专题实际是计算机相关专业学生学习完JAVA程序设计课程后 , 进行的一次全面的综合训练 , JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握 , 使学生较系统地掌握程序设计及其在网络开发中的广泛应用 , 基本方法及技巧 , 为学生综合运用所学知识 , 利用软件工程为基础进行软件开发、并在实践应用方面 。

4、打下一定基础 。
1.2 课程设计的实验环境硬件要求能运行Windows 9.X操作系统的微机系统 。
JAVA程序设计语言及相应的集成开发环境 , J2SDK和ECLIPSE开发工具 。
1.3 课程设计的预备知识熟悉JAVA语言及ECLIPSE开发工具 。
1.4 课程设计要求按课程设计指导书提供的课题 , 要求学生在自行完成各个操作环节 , 并能实现且达到举一反三的目的 , 完成一个项目解决一类问题 。
要求学生能够全面、深入理解和熟练掌握所学内容 , 并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握 , 能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;了解多线 。

5、程、安全和网络等编程技术 。
同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高 。
第2章 课程设计内容2.1课程设计主要内容坦克大战游戏是在Eclipse环境下编程的游戏 , 其中包括对主战坦克的编写、坦克的初始位置的编写、坦克的移动方向的编写、坦克的速度的编写、坦克的子弹速度的编写、敌军的子弹速度的编写、设置游戏难度的编写、子弹的编写、敌军坦克的编写、构造函数的编写 , 初始化敌军坦克的位置和状态的编写、键盘控制坦克的移动的编写、发弹的编写、判断是否被击中的编写、判断是否击中敌军的编写等 。
通过上下左右键进行对坦克的移动,通过空格 。

6、发射子弹 , 其它坦克可以随机移动 。
构造主窗口中所需要的类,并将坦克加到窗口中 , 实现坦克的四个方向的移动并创建炮弹类 , 并让屏幕中的坦克能发射炮弹 , 让坦克可以朝对方开火 , 并将对方击毙 。
2.2概要设计2.2.1自定义类说明(1)HsTank2 类是一个自定义的异常类 , 其继承的父类为JFrame , 没有具备实现类的接口 。
用此类定义了坦克大战的版本为坦克大战(版本1.0) 。
其具体定义如下:public class HsTank2 extends JFrame HsTank2(String title) public static void main(String args) HsTank2 h = new。

7、HsTank2(坦克大战(版本1.0) ;
h.setVisible(true) ;
(2)MyTank类是用来定义主战坦克的类 , 其继承父类为JPanel , 然后定义坦克的初始位置以及坦克的移动方向 , 让坦克朝四个方向运动起来 , 在类MyTank中启用多线程机制 , 让系统不断的进行重画 。
其中定义成员变量具体如下:int tankspeed定义成员变量来表示坦克的速度int tankbullet定义成员变量来表示子弹速度int tankfbullet定义成员变量来表示敌军的子弹速度int shengming定义成员变量来显示坦克的生命int nandu定义成员变量来设置游戏难度int num定义成员变量来表 。

8、示敌军坦克数量接下来是构造函数 , 初始化敌军坦克的位置和状态 , 其具体情况如下:MyTank() for (int i = 0;
i= 560) x = x - tankspeed ;
dx = dx - tankspeed ;
if(e.getKeyCode() = KeyEvent.VK_DOWN) op = 3 ;
y = y + tankspeed ;
dy = dy + tankspeed ;
if(y = 560) y = y - tankspeed ;
dy = dy - tankspeed ;
if(e.getKeyCode() = KeyEvent.VK_LEFT) op = 4 。

9、 ;
x = x - tankspeed ;
dx = dx - tankspeed ;
if(x y +8 & dxf1i-x-10 & dxf1i-xx+2 &dxf2i-10 & dyf2i - y y+2 & dyf3i-10& dxf3i-xx+8 &dxf4i-10 & dyf4i - y yfi +8 & dx1-xfi-10 & dx1-xfixfi+2 &dx2-10 & dy2 - yfi yfi+2 & dy3-10& dx3-xfixfi+8 &dx4-10 & dy4 - yfi 40 ) System.out.println (4击中) ;
fenshu = fen 。

10、shu + 100 ;
xfi = (int)(Math.random() * 560 );
yfi = (int)(Math.random() * 560 );
dxfi = xfi + 15 ;
dyfi = yfi + 15 ;
public void paint(Graphics g) super.paint(g) ;
this.setBackground(Color.WHITE) ;
g.setColor(Color.red) ;
g.drawString(生命: , 10 , 20 ) ;
g.fillRect(50 , 10 , shengming * 5 , 10) ;
g.d 。

11、rawRect(50 , 10 , 500 , 10) ;
g.drawString(得分: + fenshu , 10 , 40) ;
if(op = 1) g.setColor(Color.red) ;
g.fillRect(x , y , 40 , 40) ;
switch (color % 6) case 0: g.setColor(Color.blue) ;
break;
case 1: g.setColor(Color.yellow) ;
break;
case 2: g.setColor(Color.red) ;
break;
case 3: g.setColor(Color.o 。

12、range) ;
break;
case 4: g.setColor(Color.green) ;
break;
case 5: g.setColor(Color.black) ;
break;
g.fillOval(x - 5 , y - 5 , 10 , 10) ;
g.fillOval(x - 5 , y + 5 , 10 , 10) ;
g.fillOval(x - 5 , y + 15 , 10 , 10) ;
g.fillOval(x - 5 , y + 25 , 10 , 10) ;
g.fillOval(x - 5 , y + 35 , 10 , 10) ;
g.fillOva 。

13、l(x + 35 , y - 5 , 10 , 10) ;
g.fillOval(x + 35 , y + 5 , 10 , 10) ;
g.fillOval(x + 35 , y + 15 , 10 , 10) ;
g.fillOval(x + 35 , y + 25 , 10 , 10) ;
g.fillOval(x + 35 , y + 35 , 10 , 10) ;
g.setColor(Color.black) ;
g.fillRect(x + 15 , y - 20 , 10 , 40) ;
switch (color % 20) case 0: g.setColor(Color.w 。

14、hite) ;
break;
case 1: g.setColor(Color.white) ;
break;
case 2: g.setColor(Color.white) ;
break;
case 3: g.setColor(Color.white) ;
break;
case 4: g.setColor(Color.white) ;
break;
case 5: g.setColor(Color.white) ;
break;
case 6: g.setColor(Color.white) ;
break;
case 7: g.setColor(Color.white) ;
break 。

15、;
case 8: g.setColor(Color.white) ;
break;
case 9: g.setColor(Color.white) ;
break;
case 10: g.setColor(Color.black) ;
break;
case 11: g.setColor(Color.black) ;
break;
case 12: g.setColor(Color.black) ;
break;
case 13: g.setColor(Color.black) ;
break;
case 14: g.setColor(Color.black) ;
break;
case 1 。

16、5: g.setColor(Color.black) ;
break;
case 16: g.setColor(Color.black) ;
break;
case 17: g.setColor(Color.black) ;
break;
case 18: g.setColor(Color.black) ;
break;
case 19: g.setColor(Color.black) ;
break;
g.fillOval(x + 5 , y + 30 , 10 , 10) ;
g.fillOval(x + 25 , y + 30 , 10 , 10) ;
if(op = 2) g.setC 。

17、olor(Color.green) ;
g.fillRect(x , y , 40 , 40) ;
switch (color % 6) case 0: g.setColor(Color.blue) ;
break;
case 1: g.setColor(Color.yellow) ;
break;
case 2: g.setColor(Color.red) ;
break;
case 3: g.setColor(Color.orange) ;
break;
case 4: g.setColor(Color.green) ;
break;
case 5: g.setColor(Color.bl 。

18、ack) ;
break;
g.fillOval(x - 5 , y - 5 , 10 , 10) ;
g.fillOval(x + 5 , y - 5 , 10 , 10) ;
g.fillOval(x + 15 , y - 5 , 10 , 10) ;
g.fillOval(x + 25 , y - 5 , 10 , 10) ;
g.fillOval(x + 35 , y - 5 , 10 , 10) ;
g.fillOval(x - 5 , y+35 , 10 , 10) ;
g.fillOval(x + 5 , y+35 , 10 , 10) ;
g.fillOval(x + 15 , 。

19、 y+35 , 10 , 10) ;
g.fillOval(x + 25 , y+35 , 10 , 10) ;
g.fillOval(x + 35 , y+35 , 10 , 10) ;
g.setColor(Color.black) ;
g.fillRect(x + 20 , y + 15 , 40 , 10) ;
switch (color % 20) case 0: g.setColor(Color.white) ;
break;
case 1: g.setColor(Color.white) ;
break;
case 2: g.setColor(Color.white) ;
bre 。

20、ak;
case 3: g.setColor(Color.white) ;
break;
case 4: g.setColor(Color.white) ;
break;
case 5: g.setColor(Color.white) ;
break;
case 6: g.setColor(Color.white) ;
break;
case 7: g.setColor(Color.white) ;
break;
case 8: g.setColor(Color.white) ;
break;
case 9: g.setColor(Color.white) ;
break;
case 10:。

21、g.setColor(Color.black) ;
break;
case 11: g.setColor(Color.black) ;
break;
case 12: g.setColor(Color.black) ;
break;
case 13: g.setColor(Color.black) ;
break;
case 14: g.setColor(Color.black) ;
break;
case 15: g.setColor(Color.black) ;
break;
case 16: g.setColor(Color.black) ;
break;
case 17: g.setC 。

22、olor(Color.black) ;
break;
case 18: g.setColor(Color.black) ;
break;
case 19: g.setColor(Color.black) ;
break;
switch (color % 6) case 0: g.setColor(Color.blue) ;
break;
case 1: g.setColor(Color.yellow) ;
break;
case 2: g.setColor(Color.red) ;
break;
g.fillOval(x , y + 5 , 10 , 10) ;
g.fillOval(x ,。

23、y + 25 , 10 , 10) ;
if(op = 3) g.setColor(Color.blue) ;
g.fillRect(x , y , 40 , 40) ;
g.fillOval(x - 5 , y - 5 , 10 , 10) ;
g.fillOval(x - 5 , y + 5 , 10 , 10) ;
g.fillOval(x - 5 , y + 15 , 10 , 10) ;
g.fillOval(x - 5 , y + 25 , 10 , 10) ;
g.fillOval(x - 5 , y + 35 , 10 , 10) ;
g.fillOval(x + 35 , y 。

24、 - 5 , 10 , 10) ;
g.fillOval(x + 35 , y + 5 , 10 , 10) ;
g.fillOval(x + 35 , y + 15 , 10 , 10) ;
g.fillOval(x + 35 , y + 25 , 10 , 10) ;
g.fillOval(x + 35 , y + 35 , 10 , 10) ;
g.setColor(Color.black) ;
g.fillRect(x + 15 , y + 20 , 10 , 40) ;
2.4测试分析2.4.1程序运行情况编译完相关的代码后 , 在eclipse中运行 , 会显示出如下效果图 , 通过上下左右键 。

25、来移动坦克并躲避子弹 , 通过按空格来发射子弹 , 其中还可以显示所剩的生命值 , 具体效果如下图显示:图2.1坦克大战运行时效果图如下是此游戏结束时的效果图:图2.2坦克大战结束时效果图2.5.2程序异常处理此程序不涉及异常处理 。
第3章 课程设计总结在Internet流行的今天 , 对传统的计算模型提出了新的挑战 。
由于Java语言具有能独立于平台而运行、面向对象、可对动态画面进行设计与操作、坚固性等特点 , 又具有多线程、内置校验器用来防止病毒入侵等功能 , 所以用来在Internet上研制与开发软件时 , 特别受到用户的欢迎 。
现在 , 许许多多的原C+程序员已经转向了Java编程 , 同时Java程序的应用也由简单的Appl 。

26、et(一种小应用程序)逐步向大型化应用转变 , 为了迎接将来Internet和信息化世界的挑战 , 我认为学习Java高级语言是很有必要的 。
Java是一种简单、面向对象、分布式、解释、健壮、安全、结构中立、可移植、高效能、多线程、动态的语言 , Java语言提供一种强有力的工具支援程序设计员 , 同时由于Java属于面向对象语言 , Java程序设计很容易学习 , 同时Java还提供了自动的内存垃圾收集功能 。
再者 , 由于Java码具备结构中立性 , 因此其应用程序成为非同质性运算环境 (例如Internet)的理想方案 。
Eclipse是一种通用的工具平台 , 普通适用的开放式扩展IDE 。
它提供了功能丰富的开发环境 , 可以让开发者 。

27、高效地创建一些能够无缝集成到Eclipse平台中的工具 。
坦克大战是一个传统的游戏 , 这个游戏是考验玩家反应的灵敏度 , 这个游戏规则很简单 , 玩家使用上下左右键控制坦克的移动 , 空格键来发射子弹 , 下面介绍编写的游戏过程 。
首先创建一个HsTank2类 , 然后定义坦克大战的版本为:坦克大战(版本1.0) , 构造主窗口中所需要的MyTank类,并将坦克加到窗口中 , 实现坦克的四个方向的移动,创建炮弹类 , 并让屏幕中的坦克能发射炮弹,接下来构造方法 , 让坦克可以朝对方开火 , 并将对方击毙 。
接着编写主战坦克、子弹、敌军坦克、构造函数 , 初始化敌军坦克的位置和状态、键盘控制坦克的移动 , 发弹、判断是否被击中、判断是否击中敌军、坦克 。

【JAVA|JAVA程序设计课程设计(论文)坦克大战游戏】28、的随机移动 。
然后把代码在eclipse中运行 , 运行中有些错误经过调试 , 才可以在Eclipse中运行出来并将运行时的效果图截取下来 。
在本次试验中 , 给我印象最为深刻的是程序的编译 。
最后我们的课程设计结束了 , 但是它留给我的印象是不可磨灭的 。
以前上课时有许多的问题并没有真正的认识到 , 但通过这次试验的制作 , 使我掌握了许多更重要的知识点 。
参考资料1钟允中 Java入门 辽宁科学技术出版社 1997年10月2. 美Bruce Eckel 京京工作室译 Java编程思想 机械工业出版社 1999年4月3. 耿祥义 张跃平 Java2实用教程 清华大学出版社 2004年4. 刘晓华 精通Java核心技术 电子工业出版社 2004年5. 美C.Thomas Wu 候国峰等译 面向对象程序设计导论 电子工业出版社 2002.066. 美Chuck Cavaness Java完全探索(第2版) 中国青年出版社 2001.097. 姜利群 Java网络编程实例教程 .清华,北交大出版社.2005.1.8. 李尊朝 Java语言程序设计. 中国铁道出版社. 2004.9.9. 袁海燕 Java.应用程序设计100例 人民邮电出版社. 2005.5.10. 薛为民 Java 应用教程 清华北交大出版社. 2005.9.11. 耿祥义 Java课程设计 清华大学出版社 2004.02 17 。


    稿源:(未知)

    【傻大方】网址:/a/2021/0902/0024074154.html

    标题:JAVA|JAVA程序设计课程设计(论文)坦克大战游戏


    上一篇:关于|关于禁止组织有偿补课及违规收受礼金礼品的管理制度

    下一篇:本科专业|茶学本科专业设置申请表0715doc普通高等学校本科专