最新JAVA开放性实验报告贪吃蛇.doc
《最新JAVA开放性实验报告贪吃蛇.doc》由会员分享,可在线阅读,更多相关《最新JAVA开放性实验报告贪吃蛇.doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateJAVA开放性实验报告贪吃蛇JAVA程序设计与应用开发JAVA程序设计开放性实验报告 专 业: 计算机科学与技术 班 级: 2012级2班 学 号: 姓 名: 实验2贪吃蛇游戏设计(4学时)1.实验内容(1) 创建软件主窗体和相关控制菜单;在窗体中以图形模拟蛇的形状,使用键盘控制图形在窗体中任意移动,模拟贪吃蛇的行为.(2) 在窗体中可以设置障碍或奖励物品,以达到游戏
2、的娱乐性。2.预习内容Java GUI编程;鼠标和键盘的事件处理;Java多媒体编程。3.实验类型综合性4.实验目的(1)了解JavaGUI编程特别是窗体,菜单;熟悉Java的事件委托处理机制,能完成鼠标和键盘的事件处理;(2)熟悉Java中的多媒体技术如:音频文件的播放控制,游戏中各种事件的音效添加。熟悉Java中的绘图操作,可以使用绘图函数进行图形的绘制和重绘等基本操作;(3)熟悉模块的划分及游戏控制类的编写,了解相关的游戏设计和实现模式;(4)设计可视化界面,添加其他必要组件,对窗体进行相应的键盘事件处理,使蛇能移动,依据实验内容结合自己的设计想法,实现模拟贪吃蛇的游戏效果。5.实验要求
3、依据实验内容,编写相关类,实现所需软件功能。6实验过程(分析设计、源文件、执行结果)代码如下:-1、Node类public class Node private int x;private int y;public Node()public Node(int x,int y)this.x=x;this.y=y;public int getX()return x;public void setX(int x)this.x=x;public int getY()return y;public void setY(int y)this.y=y;public String toString()/方便类
4、型转换/括号里不是String类型通过toString来转换,不然会输出一个地址return(+x+,+y+);Override /伪代码可以理解为注释,重写:下面的方法名是否在父类中存在,如果没有/的话会报错。/public int hashCode()/假设Node是list集合里面,只有把Node节点对象 /放在set集合时候写hashCode();final int prime = 31;int result = 1;result=prime*result+x;result=prime*result+y;return result;Override/比较Node对象是否在同一坐标都要写
5、上equals方法public boolean equals(Object obj)if(this=obj)return true;if(this=null)return false;if(getClass()!=obj.getClass()return false;Node other=(Node)obj;if(x!=other.x)return false;if(y!=other.y)return false;return true;2、Worm 类import java.util.LinkedList;public class Worm private LinkedList worm =
6、 new LinkedList();int dir;public static final int UP = -1;public static final int DOWN = 1;public static final int LEFT = -10;public static final int RIGHT = 10;public static final int ROWS = 400;/ROWS行。宽度范围,public static final int COLS = 500;/COLS列。长度范围public Worm() getWorm().add(new Node(90, 90);/
7、第90行90列,蛇扩大10倍getWorm().add(new Node(80, 90);getWorm().add(new Node(70, 90);getWorm().add(new Node(60, 90);getWorm().add(new Node(50, 90);dir = RIGHT; public void step() / 走一步Node head=getWorm().get(0);/ 找到头节点int x = head.getX() + dir / 10 * 10;/X,Y横坐标与纵坐标int y = head.getY() + dir % 10 * 10;if (x 0
8、& x 0 & y Worm.ROWS - 30& !getWorm().contains(new Node(x, y) /!getWorm().contains(new Node(x, y)是否落到蛇身上getWorm().addFirst(new Node(x, y);getWorm().removeLast();/删除 else dir = 100;throw new RuntimeException(你错了!);public void step(int dir) / 控制蛇走的方向this.dir = dir;step();public LinkedList getLinkedList
9、Worm() return getWorm();public String toString() return getWorm().toString();/输出蛇public LinkedList getWorm() return worm;public void setWorm(LinkedList worm) this.worm = worm;3、WormDemo类import java.awt.Cursor;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.J
10、Frame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;public class WormDemo extends JFrame /private Wormpanel panel;private static int dir;public WormDemo()panel=new Wormpanel();/形成蛇的界面add(panel);/将蛇面板放到游戏里面去setTitle(贪吃蛇);/题目setSize(500+15,400+35);/大小setDefaultClose
11、Operation(JFrame.EXIT_ON_CLOSE);/关闭窗口就是关闭程序setCursor(new Cursor(12);/定义鼠标属性setVisible(true);/可视化为truepanel.requestFocus();/面板后区信息焦点setLocationRelativeTo(null);/设置窗口组建定义的位置this.setResizable(false);public static void main(String args)final WormDemo wd=new WormDemo();/new一个自己创建的一个属性游戏窗口/设置一个监听JMenuBar
12、jmb=new JMenuBar();/导包,然后设置wd.setJMenuBar(jmb);/往自己new的窗口加上监听JMenu fm=new JMenu(选项);jmb.add(fm);JMenuItem mi=new JMenuItem(重新再来);/mi.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)wd.panel.setWorm(new Worm();wd.panel.setN(10);wd.panel.setFoods(wd.panel.initFoods(wd.p
13、anel.n);wd.panel.setT(1000);wd.panel.repaint();/重新画wd.repaint(););fm.add(mi);JMenuItem mi2=new JMenuItem(暂停);mi2.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)dir=wd.panel.getWorm().dir;wd.panel.getWorm().dir=-100;);fm.add(mi2);JMenuItem mi3=new JMenuItem(开始);mi3.ad
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 JAVA 开放性 实验 报告 贪吃
限制150内