龟兔赛跑游戏设计.docx

上传人:b****6 文档编号:5247397 上传时间:2022-12-14 格式:DOCX 页数:12 大小:451.31KB
下载 相关 举报
龟兔赛跑游戏设计.docx_第1页
第1页 / 共12页
龟兔赛跑游戏设计.docx_第2页
第2页 / 共12页
龟兔赛跑游戏设计.docx_第3页
第3页 / 共12页
龟兔赛跑游戏设计.docx_第4页
第4页 / 共12页
龟兔赛跑游戏设计.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

龟兔赛跑游戏设计.docx

《龟兔赛跑游戏设计.docx》由会员分享,可在线阅读,更多相关《龟兔赛跑游戏设计.docx(12页珍藏版)》请在冰豆网上搜索。

龟兔赛跑游戏设计.docx

龟兔赛跑游戏设计

*******************

实践教学

*******************

 

兰州理工大学

计算机与通信学院

2014年春季学期

 

工程开发综合训练课程设计说明书

 

题目:

龟兔赛跑游戏设计与实现

专业班级:

计算机科学与技术11级4班

*****

学号:

********

*******

成绩:

 

摘要

本次课设我的题目是龟兔赛跑游戏设计与实现。

而这个游戏本身实际上主要是对我们JAVA学习中的线程部分的运用,尤其是多线程的定义、运行,Java小程序的编写,图形界面的实现,Java小程序中图片的插入等。

同时还要保证此游戏有一个较真实的操作界面和人性化操作设计,所以我在设计过程中重点强调了对线程部分内容的复习和实践。

在设计龟兔赛跑这个游戏中我也遇到了许多的困难,但通过查资料、阅读大量的文献、向老师请教以至于最终问题得以解决。

正如龟兔赛跑这个故事一样,虽然我在技术上不是很优秀,但是我不会就此放弃,我会继续努力的学习知识来完善自身的技术。

关键词:

Java小程序;多线程;图形界面;画图;背景音乐

1.问题描述

对于龟兔赛跑系统来说,开发的总体任务是实现游戏的可操作性、美观性、及时性。

开发过程遵循软件工程规范,可采用结构化或面向对象分析设计方法。

最主要是对学生多线程编程、游戏方案设计、游戏背景及动漫制作等能力进行培养锻炼和对所学的知识进行加深理解,同时还要求保证游戏有比较一个真实的操作界面和人性化操作设计。

另外,通过该题目的设计过程,可以初步应用软件系统的开发原理和开发方法,全面培养软件开发过程中的分析、设计、编码、测试及文档规范书写的能力,加深所学的知识,得到软件工程的训练,提高解决实际问题的能力。

 

2.系统设计

本系统采用多线程机制来完成,主要有界面模块,乌龟模块和兔子模块

1.功能:

实现基本的开始、退出游戏功能、选择游戏模式等

基本运行步骤:

登陆界面

在其上添加

比赛结束胜利者

龟兔比赛

模块一开始

图2-1

在实现过程中会遇到的问题及解决方案:

1.背景面板上加载图片时需要重写paint方法

2.布局根据需要设置(BorderLayout或FlowLayoutFowLayout)

3.添加背景面板监听重置各面板位置才能实现窗口放大时的相对位置不变

 

2各模块.功能:

实现乌龟,兔子的多线程运行

具体的步骤:

 

图2-2

第二步会遇到的问题及解决方案:

1.建立兔子线程,继承接口Thread并正确的实现move()方法。

2.建立乌龟线程,继承接口Thread并实现其move()方法,要与兔子多线程运行;

3.为了实现可选择多只龟兔进行赛跑,要实现多个兔子,乌龟线程,并能并发运行。

4.游戏中提供了模式选择的功能,通过建立ItemSelect类来建立不同的游戏模式。

5.游戏中提供了每个模式重新开始的功能,实现模块重新开始move()方法。

 

3.系统实现

龟兔赛跑程序主要由以下几个模块构成:

模块一:

初始图形界面模块

privateButtonquit=newButton("退出");

privateButtonstop=newButton("暂停");

privateButtonrestart1=newButton("重新开始1");

privateButtonrestart2=newButton("重新开始2");

privateButtonmodel1_start=newButton("模式1开始");

privateButtonmodel2_start=newButton("模式2开始");

JLabell=newJLabel();该模块主要是用来提供进入该程序游戏的初始图形用户界面,显示该程序的基本信息,提示用户进行操作。

模块二:

兔子线程模块

privatedoublexdir=10;

privatebooleanrunning=false;

privateSevenPointTwospt=null;

protecteddoublex,y;

privateintflag1=0;

Imagetu=Toolkit.getDefaultToolkit().getImage("src\\tu.png");

publicTu(SevenPointTwo_spt,double_x,double_y){

spt=_spt;

x=_x;

y=_y;

确定兔子的随机速度,并时刻的显示兔子的位置。

并不只是一只兔子,而是所有的兔子。

模块三:

乌龟线程模块

privatedoublexdir=5;

privatebooleanrunning=false;

privateSevenPointTwospt=null;

protecteddoublex,y;

publicintflag1=0;

Imagegui=Toolkit.getDefaultToolkit().getImage("src\\gui.png");

publicGui(SevenPointTwo_spt,double_x,double_y){

spt=_spt;

x=_x;

y=_y;

}

确定乌龟的随机速度,并时刻的显示兔乌龟的位置。

并不只是一只乌龟,而是所有的乌龟。

模块四:

画布界面的设置与布局

privatestaticfinallongserialVersionUID=1L;

privateButtonquit=newButton("退出");

privateButtonstop=newButton("暂停");

privateButtonrestart1=newButton("重新开始1");

privateButtonrestart2=newButton("重新开始2");

privateButtonmodel1_start=newButton("模式1开始");

privateButtonmodel2_start=newButton("模式2开始");

JLabell=newJLabel();

privateTutuzi;

privateTu1tuzi1;

privateGuiwugui;

privateGui1wugui1;

Imagetu=Toolkit.getDefaultToolkit().getImage("src\\tu.png");

Imagegui=Toolkit.getDefaultToolkit().getImage("src\\gui.png");

publicSevenPointTwo(){

super("龟兔赛跑");

setLayout(newFlowLayout());

super.setBackground(Color.GRAY);

inttx=950;

intty=200;

tuzi=newTu(this,tx,ty);

tuzi1=newTu1(this,tx,ty+70);

wugui=newGui(this,tx,ty+140);

wugui1=newGui1(this,tx,ty+210);

add(model1_start);

model1_start.addActionListener(this);

add(restart1);

restart1.addActionListener(this);

add(model2_start);

model2_start.addActionListener(this);

add(restart2);

restart2.addActionListener(this);

add(stop);

stop.addActionListener(this);

add(quit);

quit.addActionListener(this);

validate();

setSize(1000,600);

setVisible(true);

addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

System.exit(0);

}

}

);

}

此模块是显示初进时的登陆界面,显示总共的比赛选手,和比赛的模式、暂停、结束。

 

4.系统测试

对代码进行编译,按动界面上的按钮,观察乌龟和兔子的动作。

确保程序的正确性和可行性。

并多次编译观察结果是否为随机。

4.1初始界面登陆

图4-1

 

4.2模块一运行

图4-2

4.3模块一结束、显示胜利者

图4-3

 

4.4模块二运行

图4-4

4.5模块二结束、显示胜利者

图4-5

 

4.6暂停

图4-6

 

4.7退出

图4-7

按动退出按钮时,程序关闭运行,界面消失。

 

5.总结

我所做的一个基于多线程模式的龟兔赛跑小游戏,系统的规模大小很有限,实现的功能也很简单,但还算是一个完整的系统,在整个课程设计过程中我还是学到了不少的知识,也对以前所学的知识有了更多的了解,并且对java语言有了较深的体会。

通过本次课设试验在试验过程中,虽然刚开始什么都不会,但是我不断的尝试,不断的修改错误,遇到问题,查找资料,请教老师,并解决问题,终于明白了每个功能模块的作用。

虽然这个过程很苦,但我对java的熟练程度得到了很大的提升,对包括多线程在内的java语言高级技术掌握的也更加熟练了,更对面向对象的分析思想,面向对象的设计方法有了直观的体会。

同时,在游戏的制作过程中要用到很多课本上并未介绍到的知识,如当我遇到如何在一个Japplet类中创建另外一个Applet类的对象并运行线程的问题时,我纠结了很久没能找到解决办法,最终通过上网问XX,不断尝试,不断错,在不断改,终于解决了。

通过网络学习使得自己对该部分的知识有了更广泛更深刻的体会。

由于知识有限,本次的游戏制作有些简单,还有时间的原因以至于兔子领先的时候睡觉的程序并没有设计完,所以显得游戏相对单调,离一个真正的游戏软件还相差很远,以后如有时间和精力,可以考虑去做一个真正的游戏软件,来锻炼自己,相信我会做得更好!

 

参考文献

1.张海藩.软件工程导论(第四、五版)[M].北京:

清华大学出版社,2008.

2.CaySandGaryC.Java2核心技术(卷1:

基础知识)[M].机械工业出版社,2003.

3.邓光伟,李阿午,朱志.Java2核心技术(卷2:

高级特性)[M].机械工业出版社,2000.

4.LibertyJ.ProgrammingC#:

Building.NetapplicationswithC#[M].O'ReillyMedia,2009.

5.耿祥义.Java2实用教程.北京:

清华大学,2006-8

6.陈轶.姚晓昆编著.Java程序设计实验指导.北京:

清华大学出版社,2006

7.赵毅主编.跨平台程序设计语言——Java.西安:

西安电子科技大学出版社,2006

8.[美]RogersCadenhead.Java编程入门经典.梅兴文译.第4版.北京:

人民邮电出版社,2007

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1