贪吃蛇课程设计Word文档下载推荐.docx

上传人:b****3 文档编号:14497143 上传时间:2022-10-23 格式:DOCX 页数:26 大小:240.32KB
下载 相关 举报
贪吃蛇课程设计Word文档下载推荐.docx_第1页
第1页 / 共26页
贪吃蛇课程设计Word文档下载推荐.docx_第2页
第2页 / 共26页
贪吃蛇课程设计Word文档下载推荐.docx_第3页
第3页 / 共26页
贪吃蛇课程设计Word文档下载推荐.docx_第4页
第4页 / 共26页
贪吃蛇课程设计Word文档下载推荐.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

贪吃蛇课程设计Word文档下载推荐.docx

《贪吃蛇课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《贪吃蛇课程设计Word文档下载推荐.docx(26页珍藏版)》请在冰豆网上搜索。

贪吃蛇课程设计Word文档下载推荐.docx

内容:

玩家可以通过键盘或鼠标控制游戏区。

游戏设定不同级别,级别越高难度越大,玩家可以根据自己的需要自由设定初始游戏级别,当玩家取得的分数到达一定水平时游戏自动进入下一个级别。

游戏以最终玩家获得的分数来判断玩家水平的高低。

使用Eclipse和JDK1.6工具,操作系统为WINDOWS,采用面向对象方法完成,包括总体设计、详细设计、编码实现、测试。

设计要求如下:

①游戏由模块组成:

游戏区模块,游戏控制模块,级别设置模块和帮助模块。

②游戏区模块,为玩家提供主体游戏功能,能够处理玩家的各种游戏操作,

显示得分情况,并最终显示游戏结果。

③游戏控制模块,该模块为玩家提供游戏控制功能,应包括开始游戏,暂停游戏和退出游戏三部分功能。

④级别设置模块为玩家提供自行设置游戏的初始级别功能,主要提供初级,中级和高级三个游戏初始级别设置。

三、原始资料

1.《面向对象程序设计课程设计》指导书

2.耿祥义.JAVA大学实用教程.北京:

清华大学出版社,2009.

四、要求的设计(调查/论文)成果

1.课程设计报告

2.课程设计软件

五、进程安排

布置任务,查找资料、需求分析2天

总体设计1天

详细设计2天

编制源程序实现4天

测试与修改1天

撰写课设报告2天

六、主要参考资料

[1]张广彬.Java课程设计案例精编(第二版).北京:

清华大学出版社,2011.

[2]耿祥义.Java课程设计(第二版).北京:

清华大学出版社,2008.

[3]耿祥义.JAVA大学实用教程.北京:

[4]邹林达.陈国君Java2程序设计基础.北京:

清华大学出版社,2010.

指导教师(签名):

20年月日

1需求与总体设计

1.1总体设计思路

本系统要进行的是贪吃蛇游戏的开发。

这个游戏是在窗口的平台上进行相关操作的。

为了满足大部分用户的要求,本游戏必须实现的功能有如下要求:

(1)贪吃蛇游戏是大家很常见的小游戏,在生活工作之余大家可以玩它,已达到放松各种压力的目的。

(2)游戏可以进行升级,也就是增加吃食物的难度,以便使大家更有挑战性,不觉得太无趣。

(3)游戏界面大小可以任意指定,数据从文件读入。

(4)利用swing实现良好的GUI界面。

(5)基本功能与要求:

给出1条小蛇和随机出一个食物当小蛇吃到食物时就加分.良好的用户界面,有分数显示,并且可调节小蛇运动速度。

良好的方块形状设计,绘制小蛇和食物,小蛇有六个方块组成,食物由1个方块组成。

小蛇可通过键盘方向键(上、下、左、右键)进行向上、向下、向左、向右移动。

当小蛇吃掉一个食物后会变长,并且吃完食物时食物会消失,并立即随即生成一个新的食物

.

1.2系统主要功能图

贪吃蛇实现的基本功能:

生成登录窗口界面,登录进入游戏,可以设置游戏的窗口大小和难度等级~游戏途中有暂停继续开始等基本功能。

同时还设有游戏帮助等具体游戏操作指示、在加入了软件开发人员的相关信息介绍~结束游戏之后得分在窗口下自动统计得出~

图1-1系统功能图

1.3系统主要类图

图1-2类图

2详细设计

2.1Login类

Login类,登陆界面要求输入登陆者输入用户名和密码,分别设Go和Cancel两个登陆选项。

2.1.1

Login

属性:

用户名密码

Go(进入游戏)Cancel(取消)

操作:

Enter()Close()

2.2SnakeFrame类

创建游戏窗口主界面。

采用图形界面设计,有窗体,菜单栏和游戏操作界面。

2.3SnakeModel类

此类为蛇的初始化状态及模型,所有的游戏的开始都通过此类初始化及对蛇的操作。

SnakeModel

rows,cols,snakeHead,runingDiriction,locRO,snake,playBlocks

snakeFood,gameScore,AddScore

LocationROgetSnakeHead(),LocationROgetSnakeTail(),

LocationgetRuningDiriction(),LinkedListgetSnake(),

LinkedListgetOthers(),getScore(),getAddScore(),

setSnakeHead(LocationsnakeHead),LocationROgetSnakeFood(),setSnakeFood(),moveTo(Objecta,LinkedListfromlist,LinkedListtolist),

init(),SnakeModel(introws1,intcols1),move(Locationdirection)

2.4SnakePanel类

此类为游戏界面创建蛇的面板和蛇的移动控制实现

SnakePanel

gridsPanel,row;

col;

gridsPanel;

direction;

snake;

snakeBody;

otherBlocks;

snakeHead;

snakeFood;

gameScore=0;

speed;

AddScore;

t;

isEnd;

notExit;

SnakePanel(SnakeFrameparent,introw,intcol),newGame(longspeed)

stopGame(),returnGame(),getGameScore(),updateTextFiled(Stringstr)

updateColors(),run(),keyPressed(KeyEventevent)

keyReleased(KeyEventevent),keyTyped(KeyEventevent)

change(SnakeFrameparent,introw2,intcol2)

2.5LocationRO类

随机生成的食物位置。

用来随机生成食物。

引导蛇的移动方向。

2.6Location类

对蛇的位置的描述类

Location

xy

Location(intx,inty),getX(),getY(),setX(intx),

setY(inty),equalOrRev(Locatione),equals(Locatione),

reverse(Locatione)

3编码实现

1.Login类

//登陆界面

publicclassLoginextendsJFrame{

privateTextFieldf1;

//创建文本框

privateTextFieldf2;

privateJButtonb1;

//创建按钮

privateJButtonb2;

publicLogin(){//登陆界面

Containercp=getContentPane();

//获取容器

cp.setLayout(newGridLayout(4,1));

//设置布局管理为网格四行一列

Labell1=newLabel("

用户名"

);

//创建标签了l1,l2

Labell2=newLabel("

密码"

Panelp1=newPanel();

//创建面板,p1,p2,p3,p4

Panelp2=newPanel();

Panelp3=newPanel();

MyPanel1p4=newMyPanel1();

//创建插入图片平面p4

f1=newTextField(10);

f2=newTextField(10);

f2.setEchoChar('

*'

//回显字符为*用于输入密码,设置为不可见

b1=newJButton("

确定"

//新建按钮b1,b2

b2=newJButton("

取消"

p1.add(l1);

//第一行添加label1

p1.add(f1);

p2.add(l2);

p2.add(f2);

p3.add(b1);

p3.add(b2);

cp.add(p4);

//面板p4,p1,p2,p3分别加入容器cp

cp.add(p1);

cp.add(p2);

cp.add(p3);

b1.addActionListener(newEnter());

//添加按钮事件响应

b2.addActionListener(newClose());

JFrame.setDefaultLookAndFeelDecorated(true);

SnakeFrameframe=newSnakeFrame();

//创建游戏主界面

frame.setSize(frame.col*11+11,frame.row*11+100);

frame.setResizable(false);

frame.setLocation(500,200);

//设置窗体位置

frame.setTitle("

疯狂贪吃蛇"

frame.setVisible(true);

}

elseJOptionPane.showMessageDialog(null,"

用户名或密码错误,请重新登录!

"

//错误用户提示

classCloseimplementsActionListener{//关闭登陆按钮响应

publicvoidactionPerformed(ActionEvente){

JButtonbt=(JButton)e.getSource();

if(bt==b2){

System.exit(0);

//退出

//主函数程序开始

publicstaticvoidmain(String[]args){

Loginlog=newLogin();

log.setTitle("

疯狂贪吃蛇界面登陆"

log.setBounds(500,200,300,300);

log.setBackground(Color.blue);

log.setVisible(true);

}

classMyPanel1extendsJPanel{//插入登陆界面图片

Imageimg=Toolkit.getDefaultToolkit().getImage("

imgs/201.jpg"

//添加图片

publicvoidpaint(Graphicsg){

g.drawImage(img,0,0,this);

2.SnakeFrame类

publicclassSnakeFrameextendsJFrameimplementsActionListener{

introw=30;

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

当前位置:首页 > 自然科学 > 物理

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

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