- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java编写的吃蛇游戏源码
函数程序结构图
注释:
二、题目分析
通过分析该程序基本需要以下几个类:Text(Main方法)、Snake(蛇)、Food(食物)、Yard(窗口)、Map(地图)、Node(节点)、PaintThread(线程)、Dir(方向)、KeyMonitor(键盘监听)。主要实现蛇运动的基本操作和一些事件反应、游戏分数的记录、暂停、重新开始、更改蛇蛇颜色,蛇的移动速度,地图、死亡模式的改变等功能。
本程序运用Java语言知识,用面向对象的思维设计“贪吃蛇”游戏。
结果分析
运行程序出现游戏界面,蛇(Snake)头自动向前移动,用键盘的上(Up)下(Down)左(Left)右(Right)键控制蛇头的移动方向。游戏窗体中在随机位置出现紫色的食物(Food)。
1、每吃一个加5分
2、默认撞墙不死
3、默认速度3
4、默认地图1
5、默认普通蛇身
6、默认30分提升一个速度档次
7、默认每个速度都走完后更换地图并且速度恢复默认,积分归零
功能键:
1、按F1重新开始
2、按空格键暂停/继续
3、按1/2/3/4/5数字键设置蛇的移动速度(逐渐变快)
4、按F2更换地图(3种)
5、按F3普通蛇/彩蛇的切换
6、按F4更换游戏模式(蛇撞到最外围为死亡还是从另一端返回)
该程序初步完成了“贪吃蛇”的游戏雏形,但是缺乏完善。比如:界面效果十分粗糙、屏幕闪烁、缺少声音等。但是,我们通过编写贪吃蛇,能更好的运用面向对象的思维方式了,并学到了许多有用的经验。
附录(程序清单)
Snake.java
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
public class Snake {
Node head = null;
Node tail = null;
int size = 0;
Yard y;
Node n = new Node(1, 2, Dir.D);
public Snake(Yard y) {
head = n;
tail = n;
size = 1;
this.y = y;
for(int i=0;i3;i++)
this.Headadd();
}
public void Tailadd() {
Node node = null;
switch (tail.dir) {
case L :
node = new Node(tail.m+1, tail.n, tail.dir);
break;
case U :
node = new Node(tail.m, tail.n+1, tail.dir);
break;
case R :
node = new Node(tail.m-1, tail.n, tail.dir);
break;
case D :
node = new Node(tail.m, tail.n+1, tail.dir);
break;
}
tail.next = node;
node.pre = tail;
tail = node;
size ++;
}
public void Deltail() {
if (size == 0)
return;
tail = tail.pre;
tail.next = null;
}
public void Headadd() {
Node node = null;
switch (head.dir) {
case L:
node = new Node(head.m - 1, head.n, head.dir);
break;
case U:
node = new Node(head.m, head.n - 1, head.dir);
break;
case R:
node = new Node(head.m + 1, head.n, head.dir);
break;
case D:
node = new Node(head.m, head.n + 1, head.dir);
break;
}
node.next = head;
head.pre = node;
head = node;
您可能关注的文档
- Java基础常英语词汇(共70个).doc
- Java实验三代码.doc
- Java实验项二 面向对象编程 3部分.doc
- Java就业培教程作者张孝祥书中源码.doc
- java常用加方式.doc
- JAVA编程基-02变量和运算符.doc
- JAVA语言与向对象程序设计期末考试.doc
- java课程设——凯撒加密解密程序.doc
- Java课程设大纲.doc
- Java课程设说明.doc
- 2025年泸州市法院书记员招聘笔试备考题库及答案解析.docx
- 2025年吕梁市城管协管人员招聘笔试备考题库及答案解析.docx
- 2025年陇南市辅警招聘笔试备考题库及答案解析.docx
- 2025年福建省法院书记员招聘笔试备考题库及答案解析.docx
- 2025年大庆市城管协管人员招聘笔试备考题库及答案解析.docx
- 2025年甘南市辅警招聘笔试备考题库及答案解析.docx
- 2025年滨州市城管协管人员招聘笔试备考题库及答案解析.docx
- 2025年宁夏回族自治区法院书记员招聘笔试备考题库及答案解析.docx
- 2025年濮阳市辅警招聘笔试备考题库及答案解析.docx
- 2025年秦皇岛市辅警招聘笔试备考题库及答案解析.docx
最近下载
- 转速耦合混合动力汽车行星减速装置可靠性优化设计与分析.docx VIP
- 2025四川农商银行社会招聘800人笔试备考试题及答案解析.docx
- 2024年江西省鹰潭信江新区公开招聘村(社区)工作者12人公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版.docx VIP
- 工程质量创优策划书(中建八局).docx
- YN803D系列多功能数字仪表.doc.docx VIP
- 分布式光伏发电项目报告(28页).pptx
- 工程质量管理考核制度.doc
- 直播电商运营(初级)营销师巨量认证考试题库(附答案).docx
- 2022年研究生类同等学力申请硕士学位教育学学科综合水平考试模拟题10.pdf VIP
- 学校围墙改造项目工程施工组织设计.docx VIP
文档评论(0)