java贪吃蛇毕业论文

1.贪吃蛇程序设计报告

原发布者:yue710218347

《Java程序设计》课程设计报告题目:贪吃蛇游戏的设计与实现指导老师:沈泽刚专业:计算机科学与技术班级:10-3姓名:梁潇一、课程设计目的贪吃蛇游戏一款非常经典的手机游戏,因为它比较简单有趣,无论老少都比较适合。目的是更好地了解和掌握java语言,并熟练的运用java语言来实现项目。培养自主学习的能力。本软件在设计方面本着方便、实用及娱乐性高的宗旨,在外界进行设计的过程中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错等优点。二、课程设计要求贪吃蛇游戏设计与实现,主要分为以下二个模块:游戏主界面模块、游戏控制模块。三、课程设计报告内容(一)系统设计1、程序概述本程序是一个利用Java应用软件制作的贪吃蛇小游戏。在游戏过程中,用户通过点击小键盘区的方向键来控制蛇的运行方向;当蛇没有吃到食物且碰到墙壁或自己的身体时游戏结束。本程序的另一个功能是在程序运行窗口的左上角显示,用户在游戏过程中所得的分数,不过缺点就是在退处程序后,下次打开程序时无法保存。2、游戏的主界面设计游戏的主界面是进入游戏后,能够给玩家第一感官的部分,主要包括游戏图形区域界面、游戏的速度选择更新界面、游戏分数的显示

2.求一个关于JAVA的论文

目 录 一、概要设计……………………………………………………………3 二、程序整体设计说明…………………………………………….…..4 三、程序部分源代码及注释…………………………………………….9 四、测试结果………………………………………………………….24 五、设计心得…………………………………………………………25 六、致 谢…………………………………………………………25 七、参考文献…………………………………………………………25 【摘 要】该程序是一个图形界面的java文档编辑器,其界面主要采用了awt包, 程序实现了文本编辑器的基本功能有:新建文件、打开文件、文件保存、文件另存为、剪切、复制、粘贴、删除、查找/替换、改变字体大小,另外还利用Time类的schedule方法实现了文件的定时自动更新功能,并创建备份文件,由于该编辑器是用的awt包,所以在技术上没有实现将Java的关键字以不同颜色显示功能。

【关键字】java 编辑器 一、概要设计 Java程序编辑器是:图形界面、线程、流与文件等技术的综合应用。 图形界面的实现:考虑到简单、实用、高效等特点,就选择了AWT来完成实现,在选择组件上,文本编辑区就选用了TaxtArea作为主要的部件。

线程实现文件自动保存:在相关的参考书上查阅到在Time类中有一个schedule方法可以在后台自动完成一定的功能,而且调用起来相当简单,于是就用了Time类中的schedule方法来实现文件自动保存及备份功能。 文件操作的实现:利用了字符文件流FileReader和FileWriter类来实现。

由于Java的特性,可能用任何一个编辑器来编辑,于是就将Windows中的记事本作为模仿对象,根据实现情况删减了其中的一些功能,如自动换行,设置字体,打印等功能。 在设计类的时候,考虑到简单明了,就用了两个类,一个主类和一个默认属性类作为程序的整体框架,所有的对象和方法都是在默认属性类中创建和实现的,以及为各组件注册事件监听程序也是在默认属性类中实现的。

主类完成对象的实例化及显示。这们设计的优点是:条理清晰,容易理解,容易修改。

这样设计的缺点是:不利于共享类中的方法。 二、程序整体设计说明 2.1、程序框架图 2.2、程序中所用类说明 (1)用户自定义类 类名:EditInstantiation 作用:实例化对象 继承的父类:WindowAdapter 主要成员变量: Frame myFrm // 定义主窗体 TextArea myText // 定义文本编辑区 Dialog myDlgFind,myDlgFindont //查找及设置字体对话框 TextField TFfind, TFreplace, TffontSize //查找对话框和字体窗体中的文本行 Button BfontOK, Bfind, Breplace, Bnext, Bcancel //定义和创建各按钮 Label Lf, Lr, Ls //定义和创建各标签 MenuBar Mbbar //定义和创建主菜单 Menu Mfile,Medit,Mformation,Mhelp //定义和创建主菜单中的选项 Toolkit toolKit Clipboard myCB //剪切板对象 FileDialog myFDlg //定义文件对话框 Choice ChfontName //定义和创建字体选择框 private int VIindex = 1; //构成文件名后缀变量 private String VSsubFixStr=".java"; //构成文件名扩展名变量 private String VSmyFileName = "Document1",VSmyBFileName; //文件名及备份文件名变量 private File VFmyFile=new File(VSmyFileName+VIindex+".java"); //文件名变量 private int VIsearchPosition=0; //查找位置指针 private Timer VTtime; //实例化一个Time类 private int VImin=1; // schedule方法中的一个时间参数 private int VItype=JOptionPane.INFORMATION_MESSAGE; //提示对话框类型 private String VStitle; //提示对话框标题 private String VSmessage; //提示对话框信息 private boolean VBchanged = true; //改变字体的一个标识 private int VIfontSizeMin = 8, VIfontSizeMax = 40, VIfontSizeChangedStep = 2; //设置字体大小及步长 主要成员方法: public void init() //初始化各部件菜单的定义和事件的监听 public void displayEdit ()//显示窗体及调用Time中的schedule方法 public void windowClosing () //关闭窗体 public void save //保存文件方法 a.内部类类名:KeyEvents 作用:实现菜单的事件的响应功能 继承的父类:KeyAdapter 主要成员变量:无 成员方法:actionPerformed()、keyPressed() b.内部类类名:FindKeyEvent 作用:实现查找中各部件事件的响应功能 继承的父类:无 主要成员变量:无 成员方法:actionPerformed () c.内部类类名:fontEvent 作用:实现字体中各部件事件的响应功能 继承的父类:无 主要成员变量:无 成员方法:ItemListener(),ActionListener() (2)用户自定义类与Java类的继承关系图如下: 自定义类 Java 类 线程使用说明 2.3、实现接口方法 本程序用到的方法有:schedule其方法描述如下: schedule(事件,启动时间,间隔时间); 2.4、线程应用 本程序为文本编辑器,为实现自动更新,应用到了线程,每隔1分钟对文件进行自动更新 2.5、异常处理说明 (1)打开文件时的异常处理 需要处理的异常:IOException 处理方法:捕获异常后,显示捕获的异常 (2)保存文件时的异常处理 需要处理的异常:IOException 处理方法:捕获异常后,。

3.用JAVA设计游戏:贪吃蛇游戏

用MVC方式实现的贪吃蛇游戏,共有4个类。

运行GreedSnake运行即可。主要是观察者模式的使用,我已经添加了很多注释了。

1、/* * 程序名称:贪食蛇 * 原作者:BigF * 修改者:algo * 说明:我以前也用C写过这个程序,现在看到BigF用Java写的这个,发现虽然作者自称是Java的初学者, * 但是明显编写程序的素养不错,程序结构写得很清晰,有些细微得地方也写得很简洁,一时兴起之 * 下,我认真解读了这个程序,发现数据和表现分开得很好,而我近日正在学习MVC设计模式, * 因此尝试把程序得结构改了一下,用MVC模式来实现,对源程序得改动不多。 * 我同时也为程序增加了一些自己理解得注释,希望对大家阅读有帮助。

*/package mvcTest;/** * @author WangYu * @version 1.0 * Description: * * Create on :Date :2005-6-13 Time:15:57:16 * LastModified: * History: */public class GreedSnake { public static void main(String[] args) { SnakeModel model = new SnakeModel(20,30); SnakeControl control = new SnakeControl(model); SnakeView view = new SnakeView(model,control); //添加一个观察者,让view成为model的观察者 model.addObserver(view); (new Thread(model)).start(); }} -------------------------------------------------------------2、package mvcTest;//SnakeControl.javaimport java.awt.event.KeyEvent;import java.awt.event.KeyListener;/** * MVC中的Controler,负责接收用户的操作,并把用户操作通知Model */public class SnakeControl implements KeyListener{ SnakeModel model; public SnakeControl(SnakeModel model){ this.model = model; } public void keyPressed(KeyEvent e) { int keyCode = e.getKeyCode(); if (model.running){ // 运行状态下,处理的按键 switch (keyCode) { case KeyEvent.VK_UP: model.changeDirection(SnakeModel.UP); break; case KeyEvent.VK_DOWN: model.changeDirection(SnakeModel.DOWN); break; case KeyEvent.VK_LEFT: model.changeDirection(SnakeModel.LEFT); break; case KeyEvent.VK_RIGHT: model.changeDirection(SnakeModel.RIGHT); break; case KeyEvent.VK_ADD: case KeyEvent.VK_PAGE_UP: model.speedUp(); break; case KeyEvent.VK_SUBTRACT: case KeyEvent.VK_PAGE_DOWN: model.speedDown(); break; case KeyEvent.VK_SPACE: case KeyEvent.VK_P: model.changePauseState(); break; default: } } // 任何情况下处理的按键,按键导致重新启动游戏 if (keyCode == KeyEvent.VK_R || keyCode == KeyEvent.VK_S || keyCode == KeyEvent.VK_ENTER) { model.reset(); } } public void keyReleased(KeyEvent e) { } public void keyTyped(KeyEvent e) { }}-------------------------------------------------------------3、/* * */package mvcTest;/** * 游戏的Model类,负责所有游戏相关数据及运行 * @author WangYu * @version 1.0 * Description: * * Create on :Date :2005-6-13 Time:15:58:33 * LastModified: * History: *///SnakeModel.javaimport javax.swing.*;import java.util.Arrays;import java.util.LinkedList;import java.util.Observable;import java.util.Random;/** * 游戏的Model类,负责所有游戏相关数据及运行 */class SnakeModel extends Observable implements Runnable { boolean[][] matrix; // 指示位置上有没蛇体或食物 LinkedList nodeArray = new LinkedList(); // 蛇体 Node food; int maxX; int maxY; int direction = 2; // 蛇运行的方向 boolean running = false; // 运行状态 int timeInterval = 200; // 时间间隔,毫秒 double speedChangeRate = 0.75; // 每次得速度变化率 boolean paused = false; // 暂停标志 int score = 0; // 得分 int countMove = 0; // 吃到食物前移动的次数 // UP and DOWN should be even // RIGHT and LEFT should be odd public static final int UP = 2; public static final int DOWN = 4; public static final int LEFT = 1; public static final int RIGHT = 3; public SnakeModel( int maxX, int maxY) { this.maxX = maxX; this.maxY = maxY; reset(); } public void reset(){ direction = SnakeModel.UP; // 蛇运行的方向 timeInterval = 200; // 时间间隔,毫秒 paused = false; // 暂停标志 score = 0; // 得分 countMove = 0; // 吃到食物前移动的次数 // initial matirx, 全部清0 matrix = new boolean[maxX][]; for (int i = 0; i < maxX; ++i) { matrix[i] = new boolean[maxY]; Arrays.fill(matrix[i], false); } // initial the snake // 初始化蛇体,如果横向位置超过20个,长度为10,否则为横向位置的一半 int initArrayLength = maxX > 20 ? 10 : maxX / 2; nodeArray.clear(); for (int i = 0; i < initArrayLength; ++i) { int x = maxX / 2 + i;//maxX被初始化为20 int y = maxY / 2; //maxY被初始化为30 //nodeArray[x,y]: [10,15]-[11,15]-[12,15]~~[20,15] //默认的运行方向向上,所以游戏一开始nodeArray就变为: // [10,14]-[10,15]-[11,15]-[12,15]~~[19,15] nodeArray.addLast(new Node(x, y)); matrix[x][y] = true; } // 创建食物 food = createFood(); matrix[food.x][food.y] = true; } public void changeDirection(int newDirection) 。

4.java 贪吃蛇思想

我不懂JAVA,但是我可以告诉你我用C++写过的贪吃蛇的思想;我定义一个2维数组里面存了一些点,即屏幕的坐标点,比如你要绘制一个正方形,你可以保存它的两个顶点坐标到数组里面,然后把你的窗口的坐标都保存起来,再定义一个2维数组,先全0,为1表示有方块,移动的时候就对这个数组里的数据进行操作,然后绘制到桌面上判断第二个数组的数值,是1的话到第一个数组相同的索引里面取出坐标然后绘制,这样可以少了很多复杂的问题,至于如何判断你得自己动动脑子了!

多思考才能收获。

5.如何用Java语言写一个贪吃蛇游戏

去百度文库,查看完整内容>内容来自用户:5702309用Java编写的贪吃蛇代码下面是我用java编写的一个贪吃蛇游戏源代码.我个人是比较喜欢玩游戏的,所以学习编程二年多了,很想做个游戏程序,由于能力有限,一直没能做好,后来突然看同学在手机上玩“贪吃蛇”,故想做出来,其一是因为此游戏界面容易设计,算法也比较简单,今天我就把我程序的代码和算法介绍一下,顺便把程序界面皮肤设计说一下。

程序中一个关于游戏信息的类如下,由于类的说明在程序中写的很清楚了,就不再多解释了:#include "time.h"//方向定义const CPoint UP(CPoint(0,-1));const CPoint DOWN(CPoint(0,1));const CPoint LEFT(CPoint(-1,0));const CPoint RIGHT(CPoint(1,0));//速度快慢定义const int HIGH = 75;const int NORMAL = 180;const int SLOW = 300;const int MAX = 80; //表示转向数const int LENGTH = 10;class GameMsg{public:GameMsg(void): m_icon(0){InitGame();}void InitGame(int up = VK_UP, int down = VK_DOWN, int left = VK_LEFT, int right = VK_RIGHT){srand((unsigned)time(NULL));m_gameSpeed = NORMAL;m_speedNum = 2;m_snakeNum = 4;for(int i=0; i

java贪吃蛇毕业论文

转载请注明出处众文网 » java贪吃蛇毕业论文

资讯

中南大学研究生毕业论文格式

阅读(75)

本文主要为您介绍中南大学研究生毕业论文格式,内容包括一般论文的格式是什么,毕业论文怎么写(什么格式),研究生毕业论文的格式规范。论文是指描述学术研究成果的文章,论文的格式由题名、作者、摘要、关键词、正文、参考文献和附录等部分组成。

资讯

ae毕业论文模板

阅读(83)

本文主要为您介绍ae毕业论文模板,内容包括毕业论文的标准模板是怎样的,谁有毕业论文的模板,论文的完整格式。论文题目:要求准确、简练、醒目、新颖。2、目录:目录是论文中主要段落的简表。(短篇论文不必列目录)3、提要:是文章主要内容的摘录,要求

资讯

公路工程测量方案毕业论文

阅读(90)

本文主要为您介绍公路工程测量方案毕业论文,内容包括求一篇高速公路施工测量的毕业论文,,急需一篇完整的工程测量专业的毕业论文(10000字以上),工程测量专业毕业论文怎么写啊。浅谈公路施工测量问题及解决措施摘要:公路工程施工测量贯穿于公路

资讯

浮阀塔毕业论文

阅读(76)

本文主要为您介绍浮阀塔毕业论文,内容包括分离甲醇和乙醇混合液的晒斑(浮阀)精馏塔论文分离甲醇和乙醇混合,浮阀塔的发展,浮阀塔的发展。浮阀塔盘是在塔盘板上开许多圆孔,每一个孔上装一个带三条腿可上下浮动的阀。浮阀是保证气液接触的元件,浮

资讯

成人毕业论文不过能毕业吗

阅读(82)

本文主要为您介绍成人毕业论文不过能毕业吗,内容包括成教无毕业论文能毕业吗,成教无毕业论文能毕业吗,毕业论文通不过有毕业证吗请明白人回答。自考论文不过 是可以重新写的,在成绩出来以后 如果没有通过 你在下次的申报毕业的时间,继续申报

资讯

2014会计学专业毕业论文选题

阅读(107)

本文主要为您介绍2014会计学专业毕业论文选题,内容包括会计论文哪些题目比较好写,会计毕业论文题目,会计毕业论文题目可写并且要好写的,资料较多的`。提供一些会计学年论文的参考题目,供参考。会计方面(含会计理论、财务会计、成本会计、资产

资讯

宠物管理系统毕业论文

阅读(77)

本文主要为您介绍宠物管理系统毕业论文,内容包括宠物论文,宠物的毕业论文怎么写,关于宠物的毕业论文。养宠物时下已经成为令人注目的时尚。无论是年轻的MM,还是人到中年的时尚女性,都以拥有一只可爱或独特的宠物引以为傲,很多寂寞空巢的老人也

资讯

艺术设计系毕业论文

阅读(76)

本文主要为您介绍艺术设计系毕业论文,内容包括艺术设计论文,艺术设计专业的毕业论文怎么写谁可以提供一篇6000字的论文,艺术设计专业,是怎么毕业答辩的。广告与文化: 1. 传统文化与现代广告的关系 2. 东西方文化差异与商业广告的关系 3. 现

资讯

调幅收音机毕业设计论文

阅读(67)

本文主要为您介绍调幅收音机毕业设计论文,内容包括急求调频收音机毕业论文,调幅(am)收音机开题报告,急求数字调频收音机的毕业设计和论文。超外差式收音机设计 概述及选题意义1.1 概述收音机的发展人类自从发现能利用电波传递信息以来,就不断

资讯

flash毕业论文免费

阅读(73)

本文主要为您介绍flash毕业论文免费,内容包括求一个有关flash的论文,急求FLASH论文最好自己写的谢谢急啊,求FLASH毕业设计及论文急急急急急急急。[计算机科学与技术]基于方块原理的flash游戏超级玛丽设计与实现 2008-06-10 10:14 325,897

资讯

当当网毕业论文

阅读(72)

本文主要为您介绍当当网毕业论文,内容包括谁能帮我写一篇电子商务的毕业论文啊要有摘要关键词目录正文参考,毕业论文参考文献去哪里找,关于电子商务的毕业论文怎么写啊谁能帮我找些资料哦,谢谢。我给你准备了一篇 ,看看合适不?好的话多给点积

资讯

基于vb控制的风速测量毕业论文

阅读(81)

本文主要为您介绍基于vb控制的风速测量毕业论文,内容包括基于单片机温度测量与控制毕业论文,制作基于AT89S52单片机的风速测试,我需要准备些什么,VB6.0里利用计数循环,计算数字阶梯问题dimi,xasinteger,sasdoublex。摘要本设计的温度测量计

资讯

试验本科生毕业论文

阅读(86)

本文主要为您介绍试验本科生毕业论文,内容包括大家实验室的本科生都做什么毕业论文,什么是实验型毕业论文,大学本科写验证性实验的毕业论文可以吗。ylzhang601(站内联系TA)本科生的毕业论文极少有自己选题的,一般都是老师安排。有的老师设计好

资讯

英语专业商务英语方向毕业论文选题

阅读(74)

本文主要为您介绍英语专业商务英语方向毕业论文选题,内容包括商务英语专业毕业论文选题,求一个商务英语专业的毕业论文题目~谢谢啦~,商务英语专业毕业论文选题。商务英语专业毕业论文参考题目 商务英语的特点及翻译技巧2、商务英语函电翻译

资讯

中南大学研究生毕业论文格式

阅读(75)

本文主要为您介绍中南大学研究生毕业论文格式,内容包括一般论文的格式是什么,毕业论文怎么写(什么格式),研究生毕业论文的格式规范。论文是指描述学术研究成果的文章,论文的格式由题名、作者、摘要、关键词、正文、参考文献和附录等部分组成。

资讯

ae毕业论文模板

阅读(83)

本文主要为您介绍ae毕业论文模板,内容包括毕业论文的标准模板是怎样的,谁有毕业论文的模板,论文的完整格式。论文题目:要求准确、简练、醒目、新颖。2、目录:目录是论文中主要段落的简表。(短篇论文不必列目录)3、提要:是文章主要内容的摘录,要求

资讯

公路工程测量方案毕业论文

阅读(90)

本文主要为您介绍公路工程测量方案毕业论文,内容包括求一篇高速公路施工测量的毕业论文,,急需一篇完整的工程测量专业的毕业论文(10000字以上),工程测量专业毕业论文怎么写啊。浅谈公路施工测量问题及解决措施摘要:公路工程施工测量贯穿于公路

资讯

浮阀塔毕业论文

阅读(76)

本文主要为您介绍浮阀塔毕业论文,内容包括分离甲醇和乙醇混合液的晒斑(浮阀)精馏塔论文分离甲醇和乙醇混合,浮阀塔的发展,浮阀塔的发展。浮阀塔盘是在塔盘板上开许多圆孔,每一个孔上装一个带三条腿可上下浮动的阀。浮阀是保证气液接触的元件,浮

资讯

成人毕业论文不过能毕业吗

阅读(82)

本文主要为您介绍成人毕业论文不过能毕业吗,内容包括成教无毕业论文能毕业吗,成教无毕业论文能毕业吗,毕业论文通不过有毕业证吗请明白人回答。自考论文不过 是可以重新写的,在成绩出来以后 如果没有通过 你在下次的申报毕业的时间,继续申报

资讯

2014会计学专业毕业论文选题

阅读(107)

本文主要为您介绍2014会计学专业毕业论文选题,内容包括会计论文哪些题目比较好写,会计毕业论文题目,会计毕业论文题目可写并且要好写的,资料较多的`。提供一些会计学年论文的参考题目,供参考。会计方面(含会计理论、财务会计、成本会计、资产

资讯

宠物管理系统毕业论文

阅读(77)

本文主要为您介绍宠物管理系统毕业论文,内容包括宠物论文,宠物的毕业论文怎么写,关于宠物的毕业论文。养宠物时下已经成为令人注目的时尚。无论是年轻的MM,还是人到中年的时尚女性,都以拥有一只可爱或独特的宠物引以为傲,很多寂寞空巢的老人也

资讯

士官远程教育毕业论文

阅读(89)

本文主要为您介绍士官远程教育毕业论文,内容包括写一篇毕业论文.题目:浅谈士官在基层管理教育中的骨干作用.搜狗,国家开放大学八一学院士官远程教育毕业后对就业有没有好处啊百度,帮我写一篇远程教育的论文论文。士官处在军官和士兵的中间位