- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JAVA开放性实验报告贪吃蛇.doc
JAVA程序设计
开放性实验报告
专 业: 计算机科学与技术
班 级: 2012级2班
学 号:
姓 名:
实验2贪吃蛇游戏设计(4学时)
1.实验内容
创建软件主窗体和相关控制菜单;在窗体中以图形模拟蛇的形状,使用键盘控制图形在窗体中任意移动,模拟贪吃蛇的行为.
在窗体中可以设置障碍或奖励物品,以达到游戏的娱乐性。
2.预习内容
Java GUI编程;鼠标和键盘的事件处理;Java多媒体编程。
3.实验类型
综合性
4.实验目的
(1)了解JavaGUI编程特别是窗体,菜单;熟悉Java的事件委托处理机制,能完成鼠标和键盘的事件处理;
(2)熟悉Java中的多媒体技术如:音频文件的播放控制,游戏中各种事件的音效添加。熟悉Java中的绘图操作,可以使用绘图函数进行图形的绘制和重绘等基本操作;
(3)熟悉模块的划分及游戏控制类的编写,了解相关的游戏设计和实现模式;
(4)设计可视化界面,添加其他必要组件,对窗体进行相应的键盘事件处理,使蛇能移动,依据实验内容结合自己的设计想法,实现模拟贪吃蛇的游戏效果。
5.实验要求
依据实验内容,编写相关类,实现所需软件功能。
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(){//方便类型转换
//括号里不是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对象是否在同一坐标都要写上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 LinkedListNode worm = new LinkedListNode();
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列。长度范围
pu
您可能关注的文档
- C程序设计期末辅导资料.doc
- C程序设计第三版答案85063.doc
- c程序设计答案85091.doc
- C程序设计编程题.doc
- C程序设计选择结构.doc
- c语言-选择结构程序设计实验报告4.doc
- c语言位运算.doc
- C语言及软件技术基础实验要求.doc
- C语言四则运算测试程序设计报告.doc
- c语言格式.doc
- 中国国家标准 GB/T 46141-2025智慧城市基础设施 智慧交通数字化支付应用指南.pdf
- 《GB/T 46141-2025智慧城市基础设施 智慧交通数字化支付应用指南》.pdf
- GB/T 16855.1-2025机械安全 安全控制系统 第1部分:设计通则.pdf
- 中国国家标准 GB/T 16855.1-2025机械安全 安全控制系统 第1部分:设计通则.pdf
- 《GB/T 16855.1-2025机械安全 安全控制系统 第1部分:设计通则》.pdf
- GB/T 2940-2025柴油机用喷油泵、调速器、 喷油器弹簧 技术规范.pdf
- 中国国家标准 GB/T 2940-2025柴油机用喷油泵、调速器、 喷油器弹簧 技术规范.pdf
- 《GB/T 2940-2025柴油机用喷油泵、调速器、 喷油器弹簧 技术规范》.pdf
- 《GB/T 30174-2025机械安全 术语》.pdf
- GB/T 30692-2025提高在用自动扶梯和自动人行道安全性的规范.pdf
文档评论(0)