计科0803班0808030319孙海涛

计科0803班0808030319孙海涛

ID:9101625

大小:149.00 KB

页数:11页

时间:2018-04-17

计科0803班0808030319孙海涛_第1页
计科0803班0808030319孙海涛_第2页
计科0803班0808030319孙海涛_第3页
计科0803班0808030319孙海涛_第4页
计科0803班0808030319孙海涛_第5页
资源描述:

《计科0803班0808030319孙海涛》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Java程序设计实验报告JavaProgrammingAssignment专业:   计算机科学与技术班级:计科0803班学号:0808030319姓名:孙海涛2011年6月10日一、任务(问题)描述这个程序主要实现贪吃蛇的游戏,模仿现有的游戏,主要实现贪吃蛇的运动、产生食物,吃掉食物,改变方向,并且在吃掉食物后蛇体增长,得分增加。在碰到四周的边界或者撞到自身时,游戏结束,并且能实现游戏的暂停,开始和重新开始游戏的功能。二、设计与实现(多少个Java文件,每个文件中的类)类名属性方法备注SnakeGame无Publicstaticvoidmain(主方法)驱动类,用来构造主框架Snake

2、RunnableprivateSnakesnakepublicSnakeRunnable(构造方法)主要实现蛇的前行控制线程privateJPanelcomponentpublicvoidrunStatusRunnableprivateJLabelscoreLabelpublicStatusRunnable(构造方法)控制蛇体状态更新的线程,根据蛇的状态更新各状态标签的内容privateJLabelstatusLabelprivateSnakesnakepublicvoidrunNodepublicstaticfinalintW(蛇节点的宽)publicNode(构造方法)蛇体节点的类,

3、包括蛇身各节点的高度,宽度,所在坐标等属性publicstaticfinalintH(蛇节点的高)intx(蛇节点的横坐标)inty(蛇节点的纵坐标)SnakebooleanisRunpublicSnake该类是蛇主要行为的实现类,其中的属性包括蛇的运行状态,蛇的运行方向,蛇的速度,得分,产生的食物。主要的方法有:判断食物是否被吃掉的方法,是否碰撞的方法,产生食物的方法,改变方向的方法,控制移动的方法等。用ArrayList存蛇身各节点。ArrayListbodyprivatebooleanisEatenNodefoodprivatebooleanisCollisionint

4、directionpublicvoidmakeFoodintstatuspublicvoidchangeDirectionintscorepublicvoidmoveintspeedSnakePanelSnakesnakepublicvoidpaintComponent次类主要完成在面板上绘蛇身,在每次SnakeRunnable线程执行一次就根据蛇的状态重绘蛇身。SnakeFrame包含面板中的各种组件的实例,如菜单条,菜单项,标签等。publicSnakeFrame这是次游戏的主框架类,其中创建了各组件的对象,并且添加了事件监听和响应。privatevoidinitprivatevoi

5、dnewGame附:源程序代码框架u公共类:SnakeGame,主要是作为程序的入口,并且创建主框架的对象,设置界面设计与事件处理窗体背景和可见性publicclassSnakeGame{publicstaticvoidmain(String[]args){SnakeFrameframe=newSnakeFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setBackground(Color.white);frame.setVisible(true);}}u蛇运动的线程类:SnakeRunnable,主要

6、通过线程的睡眠来控制蛇的间断性前行,每睡眠一次就重绘一次。classSnakeRunnableimplementsRunnable{publicSnakeRunnable(Snakesnake,JPanelcomponent){this.snake=snake;this.component=component;}publicvoidrun(){while(true){try{snake.move();component.repaint();Thread.sleep(snake.speed);}catch(Exceptione){}}}privateSnakesnake;privateJP

7、anelcomponent;}u更新蛇体状态的线程:StatusRunnableclassStatusRunnableimplementsRunnable{publicStatusRunnable(Snakesnake,JLabelstatusLabel,JLabelscoreLabel){this.statusLabel=statusLabel;this.scoreLabel=scoreLabel;this.snake=snake

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

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

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