Java期中课程设计报告-贪食蛇

Java期中课程设计报告-贪食蛇

ID:39549712

大小:784.75 KB

页数:14页

时间:2019-07-06

Java期中课程设计报告-贪食蛇_第1页
Java期中课程设计报告-贪食蛇_第2页
Java期中课程设计报告-贪食蛇_第3页
Java期中课程设计报告-贪食蛇_第4页
Java期中课程设计报告-贪食蛇_第5页
资源描述:

《Java期中课程设计报告-贪食蛇》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java期中课程设计报告题目:贪食蛇游戏程序姓名:学号:院系:专业:年级:贪吃蛇游戏程序设计一、基本内容描述运用java技术开发出贪吃蛇游戏,这个程序是用一个小矩形表示蛇的一节身体,身体每长一节,增加一个矩形块。移动时必须从蛇头开始,也就是蛇尾不能改作蛇头。当游戏者按了方向键后,蛇头朝着指定的方向移动,一步移动一节身体。图形的实现是从蛇头的新位置开始画出蛇。用户可以用上下左右键控制蛇头的方向,用空格键暂停或继续,非常简单!可以实现如下功能:1.贪吃蛇游戏是大家很常见的小游戏,在生活工作之余大家可以玩它,已达到放松

2、各种压力的目的。2.游戏可以进行升级,也就是增加吃食物的难度,以便使大家更有挑战性,不觉得太无趣。3.游戏界面大小可以任意指定,数据从文件读入。4.利用swing实现良好的GUI界面。二、需求分析(一)系统功能要求:1.利用方向键来改变蛇的运行方向。2.空格键暂停或继续游戏,并在随机的地方产生食物。3.吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常运行。(一)系统设计思路:1.贪吃蛇是很经典的格子游戏。所谓格子游戏就是在设计游戏时的主要思想是每个设对象都是由格子组成,游戏运行界面也是由格子组成。格子思想

3、决定了此类游戏在设计时的算法思想。2.方向键控制一个方块的移动的方法,一个方块的移动是靠移动其坐标位置来实现的。3.方向键控制是上下左右对一个方块的控制,用四个判断语句实现。4.蛇的移动算法思想可以看成是第一个方块移动,第二个方块移到第一个方块的位置,第三个方块移动到第二个方块的位置⋯⋯第N个方块移动到第N-1个方块的位置。这样连续的移动就是蛇的移动了。方向控制键控制了第一个方块的移动后,后面方块跟着移动,这样也实现了方向键控制对长蛇的移动。5.食物的随机产生的方法食物的随机产生需要一个随机种子函数然后利用系统时

4、间做为随机种子。6.蛇的身体变长的方法当然要当蛇吃到食物时才能使身体变长。因此有两个需要解决的问题:问题一:如何知道是否吃到食物?问题二:吃到食物后身体变长?解决问题一的方法是需要一个判断语句,当蛇头即构成蛇的第一个方块跟食物所在方块的坐标一样时判断吃到食物。解决问题二则要相对复杂一些,需要多个判断语句构成。7.游戏结束的方法,当蛇碰到边框时或者吃到自己时游戏结束。根据这个思想可以用判断语句实现。然后是游戏结束后的处理,比如显示继续玩游戏还是退出游戏,并显示所吃到的食物的个数和时间等。一、系统设计1.总体设计和个

5、模块设计importjavax.swing.*;importjava.util.ArrayList;importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.FlowLayout;importjava.awt.Font;importjava.awt.Graphics;importjava.awt.event.*;publicclassSnakeextendsJFrame{finalstaticintWidth=340;finalstaticin

6、tHeight=450;finalstaticintnodeWidth=10;finalstaticintnodeHeight=10;//蛇身的坐标staticintx;staticinty;//食物的坐标staticintfx;staticintfy;staticArrayListsnakebody;//设置蛇身staticintkey;staticintl;staticintt;staticintspeed;staticTimertimer;staticJLabelb=newJLabel(""+l

7、);//计分数的staticJFramesframe;//框架//设置蛇的坐标publicstaticclassNode{intx;inty;ints;Node(intx,inty){this.x=x;this.y=y;}}//游戏面板publicstaticclassGamepanelextendsJPanel{publicGamepanel(){JPanelo=newJPanel();JLabela=newJLabel("SCORE");o.add(a);o.add(b);o.setLayout(newFlo

8、wLayout(FlowLayout.LEFT,30,0));add(o,BorderLayout.NORTH);timer=newTimer(speed,newTimerListener());timer.start();}protectedvoidpaintComponent(Graphicsg){super.paintComponent(g);//将游戏背景填充成白

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。