写单片机贪吃蛇游戏毕业设计开题报告文献综述方法如下。1、文献综述,研究思路研究方法及手段。2、参考文献进度安排。3、文献综述是开题报告中的最重要部分。
您的电子信息工程专业论文具体是什么题目呢有什么要求呢论文是需要多少字呢开题报告 任务书 都搞定了不你可以告诉我具体的排版格式要求,希望可以帮到你,祝写作过程顺利论文如何定题目 首先看是什么专业的题目其次根据专业和教授的口味来定题目尽可能不要大众化 (一)选题毕业论文(设计)题目应符合本专业的培养目标和教学要求,具有综合性和创新性。本科生要根据自己的实际情况和专业特长,选择适当的论文题目,但所写论文要与本专业所学课程有关。(二)查阅资料、列出论文提纲题目选定后,要在指导教师指导下开展调研和进行实验,搜集、查阅有关资料,进行加工、提炼,然后列出详细的写作提纲。(三)完成初稿根据所列提纲,按指导教师的意见认真完成初稿。(四)定稿初稿须经指导教师审阅,并按其意见和要求进行修改,然后定稿。 选题是决定毕业设计(论文)训练成败与质量好坏的关健之一。1、通信工程专业本科从选题的内容上可以分为理论型毕业设计(论文)和应用型毕业设计(论文)两大类。2、从本科毕业设计(论文)课题的来源,也可以分为教师命题型和自选型毕业设计(论文)两大类。3、学生要根据通信工程专业课程群来确定选题方向,数字通信与网络交换方向及信号及信息处理方向的所有应用方面课程均可以作为选题内容。但是,电子技术应用方向及计算机应用方向必须与通信或信号信息处理相结合,其中要有与通信相关的内容。4、从通信工程专业本科毕业设计(论文)所涉及的研究领域来看,可以是以下内容:(1)网络交换与数据传输分析;(2)通信网络或数字通信仿真(MATLAB,Systemview等);(3)信号及信息处理,(如数据采集,USB接口传输,图像数据处理等);(4)红外线遥感技术(如防盗遥感技术)(5)网络信息安全(如编码技术)(6)通信类软件开发,(如C语言与蓝牙结合)(7)数据传输类接口电路设计或软件设计(如嵌入式蓝牙设计)(8)光纤、无线、移动等通信新技术方面的应用或开发;(9)微波技术,电磁波传输技术,卫星雷达等方面(10)计算机网络或计算机控制方面(11)通信在军事方面的应用研究;(12)程控交换,交互式有线电视网等。(13)其他与通信相关的命题。计算机信息,通信工程,本科毕业论文参考选题 Linux(gatagram模块)源码分析Linux网络子系统stream模块分析Linux网络子系统的FDDI模块分析?? Linux网络子系统的hippi模块分析Linux网络子系统的模块分析Linux网络子系统的psnap模块分析Linux系统中模块的分析港口进口业务设计与实施基于Linux系统中模块分析建材商行商务管理系统师技校网站网络子系统PKTGEN模块的分析网上考核系统-杭州刑侦警务信息平台子系统药库药品管理系统住院管理系统毕业设计管理系统的设计与实现仓库进销存管理系统----库存管理模块成绩管理系统的设计与开发杭州市自助旅游服务系统的开发与设计建材库存管理系统明星个人网站建设农行信贷客户查询与信用等级管理系统皮具销售库存管理信息系统的分析与实现企业网站设计与建设汽车俱乐部管理系统的开发与设计人事工资管理系统人事管理系统瑞安市公交查询系统的设计与实现在线健身商品交易网站设计与实施杭州绿化网网站设计宁波亿泰工贸有限公司企业网站设计企业电子商务网站建设阳光集团人事信息管理系统的设计与实现义乌潜龙玩具厂电子商务网站建设LG分公司家电销售管理系统典当行传统物品管理系统电缆销售管理系统设计(订单管理系统)基于B/S结构的海关人事信息管理系统设计与实现基于WEB的人力资源管理系统家庭理财管理信息系统的设计与开发酒店客房管理系统的分析与设计旅行社业务管理信息系统的设计与实现企业设备档案管理信息系统的设计与实施汽车在线销售系统人事管理系统手机缴费帐务管理系统台帐管理信息系统网上书店的设计与实现小区物业管理信息系统的设计与实现烟草进销存管理信息系统的设计与实现中小型宾馆客房管理系统的实施与分析重庆九龙发电厂内部网站的设计与实现重庆索特集团销售信息管理系统DirectX小型游戏程序设计与分析基于3DS MAX三维建筑模型的设计与实现基于OPENGL的三维游戏引擎分析贪吃蛇游戏程序设计与实现 网络技术应用-在线实验教学管理信息系统的开发与设计银行人事管理信息系统的设计与实现珍珠及珍珠饰品(首饰)电子商务网站的设计与实现中学图书室图书管理信息系统从Perl正则表达式到关系数据库模式一种新型正则表达式分析树的建立用Perl语言抽取网页信息正则表达市的可视化构建超声图象管理系统设计与实施城际旅游铁路交通信息查询系统的设计与实现电脑经销物质管理信息系统基于Apriori算法的学籍课程成绩关联规则挖掘研究基于多维数据分析方法的学籍学分预警模型的研究课程教学管理信息系统联创客户关系管理系统的设计和实现审计辅助信息管理系统的设计与实现试题库管理和试卷生成系统图书借阅信息统计分析系统的设计与实现校园导游系统的设计与实现医药销售信息管理系统浙江财经学院校园信息查询网站的设计与实现--基于的WEB项目开发技术研究及应用浙江财经学院信息学院网站综合导师工作管理信息系统仓储管理系统超市商品销售管理系统的设计与实现车辆销售管理系统工厂员工管理系统基于ASP的网上购物系统的开发与实现基于Web技术的网络考试系统的设计与实现健康保健网站健身房管理软件酒店管理系统的设计与实现网络销售系统基于LL(1)算法实现pascal的子集的程序设计语言的语法分析商场进销存系统电脑配件销售管理系统的开发与设计电脑销售客户服务管理信息系统工资管理系统设计与实施零售业物资管理决策系统农村有线电视收费系统人事档案管理系统开发与实施书店管理系统的设计与实现小型旅馆管理信息系统中小型超市管理系统的设计与实现VIP贵宾卡积分消费系统电力参数分析系统的开发与设计电网功率因数自动补偿控制器的研究高等院校课程安排管理系统基于LABVIEW的粮库PH3浓度检测系统的研究基于S3C44BOX+uCLinux的嵌入式用程序的设计与开发基于单片机的电动车测速/里程测量显示系统的设计基于单片机的交通信号控制系统的设计基于单片机的数字式温度测量系统的设计基于单片机的心率测量系统的设计基于单片机的液滴速度测量系统的设计驾校信息管理系统进出口公司货物运输管理系统 汽车配件管理系统的设计与实施题库管理系统智能行出租车计价系统的设计个人主页建设的设计与实现基于XML的RDBMS数据提取方法研究基于构件的GIS软件开发研究玩具租借网站的设计与开发网络搜索引擎机制的研究学生档案管理信息系统的设计与实现中小型企业人事管理系统的开发与实现110指挥中心接处警调度管理系统宾馆客户管理系统个人所得税征管系统的设计与开发考勤管理系统的开发与设计企业人事管理系统信息系统安全策略的制订学生成绩管理信息系统第三方物流在供应链管理下的应用分析--区域经济下的第三方物流电子商务环境下的物流配送突破电子商务瓶颈、提高物流配送效率小区车辆收费管理系统的设计与开发IP网络QoS解决方案Intserv/RSVP研究当前IPV4向IPV6过渡技术浅析服装销售系统互联网路由器备份协议HSRP的研究拉链厂车间管理系统丽水学校校园设计方案网上聊天室程序设计网上人才管理信息系统的设计与实现网上银行系统的模拟与设计小区物业管理系统新天地健康会馆会员系统云和县国税局综合大楼网络规划运输物流信息管理系统在线图书零售系统IDXP(入侵检测信息交换协议)的标准IDXP(入侵检测信息交换协议)的简易实现IDXP协议的简易实现程序漏洞分析与利用基于RoadRunner的对等体间通信技术应用研究计算机网络安全案例分析鞋零售业进销存系统开发与设计出版社期刊出版中心发行业务管理系统纺织业务管理系统公关营销培训学校业务管理系统的设计与实施旅游资源及客户信息管理系统汽配管理系统嵊州市新型农村合作医疗征缴子系统校园网站设计与实现——数学与统计学院网站设计医药管理系统设计与实施银江电子科技有限公司库存管理系统的设计与实施浙江华天机械有限公司的客户信息管理系统的设计与实施住房公积金贷款管理系统餐饮管理系统城市公交线路查询系统房地产客户管理信息系统的设计与开发服装生产管理系统的设计与实现杭州伟星建材销售系统设计与实施基于WEB架构的幼儿园管理系统基于XML的影片租赁系统的开发与设计基于工作流思想的毕业设计管理系统健康风险评估系统社会劳动保障管理局新闻发布系统设计与实现塑料信息网站文件管理系统的开发与设计新闻网站管理系统的设计与实现医院住院管理 1、论文题目:要求准确、简练、醒目、新颖。2、目录:目录是论文中主要段落的简表。(短篇论文不必列目录)3、提要:是文章主要内容的摘录,要求短、精、完整。字数少可几十字,多不超过三百字为宜。4、关键词或主题词:关键词是从论文的题名、提要和正文中选取出来的,是对表述论文的中心内容有实质意义的词汇。关键词是用作机系统标引论文内容特征的词语,便于信息系统汇集,以供读者检索。 每篇论文一般选取3-8个词汇作为关键词,另起一行,排在“提要”的左下方。主题词是经过规范化的词,在确定主题词时,要对论文进行主题,依照标引和组配规则转换成主题词表中的规范词语。5、论文正文:(1)引言:引言又称前言、序言和导言,用在论文的开头。 引言一般要概括地写出作者意图,说明选题的目的和意义, 并指出论文写作的范围。引言要短小精悍、紧扣主题。〈2)论文正文:正文是论文的主体,正文应包括论点、论据、 论证过程和结论。主体部分包括以下内容:a.提出-论点;b.分析问题-论据和论证;c.解决问题-论证与步骤;d.结论。6、一篇论文的参考文献是将论文在和写作中可参考或引证的主要文献资料,列于论文的末尾。参考文献应另起一页,标注方式按《GB7714-87文后参考文献著录规则》进行。中文:标题--作者--出版物信息(版地、版者、版期):作者--标题--出版物信息所列参考文献的要求是:(1)所列参考文献应是正式出版物,以便读者考证。(2)所列举的参考文献要标明序号、著作或文章的标题、作者、出版物信息。
单片机的仿真问题我可以做,做好发到哪里去给你你ADD 么
这样的活动能够让孩子锻炼身体,而且也能够加强孩子的团结意识,带来更多的乐趣,在活动当中真的会让孩子们变得更加优秀。
我觉得让学生们进行这样的活动,意义主要有以下几个。
第一,放松学生们的心情。
现在学生们的压力实际上是非常大的,他们每天呢除了学习就是学习,睁开眼睛的第1件事情就是去上学,然后呢一直到很晚才能够睡觉,所以呢,现在学生的压力是非常大的,但是呢,学生有一个课间操就是为了让学生放松的。
但是由于学校里面的在课间通组织上面并不是很好,仅仅只是让学生们自由活动,或者让学生们跳一个广播体操,但这种方式往往不能够让学生们真正放松,只有在进行团队活动的时候才能够真正起到放松身心的作用,所以呢,这样的活动能够放松学生的心情,减轻学生的压力。
第二,可以增强班级凝聚力。
很多时候呢一个人他往往是历代世博的,但是如果每一个个人的组成一个团体,那么这个团体的力量是非常大的。但是那么多人在一个团体中,它往往是会有矛盾的或者往往有一些不好的东西,如果让这个团体能凝聚成一股绳,然后呢,去做同样的事情。
久而久之这样的话班级凝聚力会变强很多,班主任呢在考虑如何增加自己班级的凝聚力的时候,都会非常头疼,我觉得这是一个非常好的办法,就是让他们参加这样的活动,在活动中培养班级凝聚力,培养集体荣誉。
第三,增强学生们的娱乐能力。
现在学校呢,只顾培养孩子的计算能力,背诵能力等等一系列跟知识有关的能力,但是培养孩子的娱乐能力也是非常重要的,如果一个学生除了学习或者工作之外,什么事儿都不会往往他这个人是非常孤独和无聊的,他的社交能力是存在问题的,所以呢,参加这样的活动能够增强学生们的娱乐能力。
贪吃蛇大作战,最近很火爆的一款游戏,身边几乎所有人都在玩,当然自己也不例外,大概喜欢文学的人,总会透过事物表面看到不一样的东西吧。 1.要有不屈不挠的精神。 很多时候我们遇到过不去的坎,总会想着放弃,所以很多人都干不成一件事,现在想想,我们为什么不再试一次呢,或许下一次你就成功了呢。 2.永远不要得意忘形。 当我们取得一些小成就时,我们就会得意忘形,往往这时候是最危险的时候,这种时候一不小心,你就会被打回原型,回到原来的地方。当然这只是游戏,如果是在生活中,可能一个不小心就会万劫不复。 3.永远不要小看任何对手。 当你很强大的时候,你也有可能会死在小虾米手里,不要以为人家小,你就可以不放在眼里,因为小,所以可以无所顾忌,这才是最大的敌人。要知道蚂蚁也能打败大象的,即使你强大,你也有自己的劣势。 4.当你足够强大,你才可以是世界的主宰。 在我们羽翼未丰时,不要想着要去弱肉强食,这时候你还强不起来,比你强得多的人很多,一不小心,你也就是那个被强食的弱者。而当我们有了一定的能力,一定的资本时,我们才能主宰自己的命运。 5.有时候扼杀自己命运的人是自己。 很多时候,当我们遇到不顺或者挫折时,会抱怨这个抱怨那个,殊不知一切都是自己造成的后果,就像游戏中,我们自己不小心撞到边缘然后game over了,这也只能是自己的原因,而不应该满怀抱怨,我们应该吸取教训,重新再来。 6.游戏可以replay,但人生不可以。 我们玩着游戏,想着反正这一局死了,还可以继续,对于游戏这本身就没有错,但对于我们的人生来说,就不可以。我们只有一次人生,过好过不好,怎么过,都只有一次,所以我们应该精心的去对待每一次的挫折与坎,一旦成为了绊脚石,说不定我们的人生也就跟着game over了。 7.偶尔的套路还是需要的。 在游戏中,当我们的蛇足够长了,就可以去想办法让别的小蛇撞到自己,然后把它们吃掉。人生中,偶尔的套路也是需要的,很多时候我们都要为自己考虑,不是自私,是一种本能,但环境因素下,我们只能是想尽办法让自己活下去,所以有些套路也是必要的。 8.物竞天择,适者生存。 在一个小环境中你能否生存下去,要看你是否适应这个环境,生物链往往都是弱肉强食,物竞天择,适者生存,你一旦成为弱势群体,就会被这个大环境所淘汰,所以,我们应该努力适应环境,让自己脱离弱者,成为强者。 9.生存方式即使不同我们也可以达到同样的目的。 一些人在游戏中只吃小豆豆,但是最后还是会变得很强大,而有些人就跟着大蛇捡漏,也能成长到很强大。不管我们选择怎样的生存方式,只要能坚持到最后,变得强大,那什么方式生活都无所谓。 10.别傻了,人生怎么可能都在同一起点。 在游戏里,一开始我们都是一样长的,身边的资源也一样,但是,孩子,不要犯傻,这只是游戏,你看看身边,是不是所有人和你都是同一起点,答案肯定不是了。但是,即使起点不同,我们所能达到的高度也可以是一样的,当然,这就需要付出比他人很多的努力了。 人生处处是哲理,一款游戏,也是一种不同的人生体验方式,消遣的同时,学到一些道理,当然也是极好的。
个人觉得这样子的活动肯定是有非常大的意义的,毕竟这样子能够让孩子们更加趣味性的运动,增强他们的身体素质。
程序有了那就该按你的程序写报告啊 就这么给个要求 谁知道怎么写啊
程序功能介绍贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。程序整体设计说明一个游戏要有开始部分,运行部分,结束部分(实际上开始部分与运行部分是一体的)。设计思路这个程序的关键是表示蛇的图形以及蛇的移动。用一个小矩形表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用两节表示。移动时必须从蛇头开始,所以蛇不能向相反方向移动,也就是蛇尾不能改作蛇头。如果不按任何键,蛇自行在当前方向上前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇,这时由于没有庆平的原因,原来蛇的位置和新蛇的位置差一个单位,所以看起来社会多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现和消失也是画矩形块和覆盖矩形块数据结构设计及用法说明 开始部分:游戏是运行在图形模式下的,所以第一步一定是初始化图形模式,接着要有开始的界面,就像书有封面一样,我设置了一个游戏的标题画面,除了游戏标题画面我还设置了一个欢迎画面。标题画面以后,还要为游戏的运行部分作初始化,包括绘制游戏运行时的背景,对游戏某些重 要变量的初始化。运行部分:作为游戏的核心部分,这里包括的函数比较多,也就是模块比较多,首先让我模拟一下贪吃蛇的游戏模式:某个世界上突然出现一条蛇,它很短,它的运动神经异常,它没法停止自己的多动症在它的世界里就只有食物,它很饿,也很贪吃;同样在不明原因的情况下,食物从天而降,可惜的是没有落到嘴边;饥饿的主人公,不管它有没有毒,也不问食物的来历,径直向食物爬去;它吃到食物啦,它超出想象的同化能力让食物很快的成为自己身体的一部分,它的身子变长啦。当它吃到第一颗食物时,上帝有给它第二颗,于是它吃了第二颗,于是又变长了,于是又有第三颗……它的身子是一直的加长,它不管自己过长身体的麻烦——转身不便,继续吃下去,现在它是直接把巴张大,好让食物有个绿色通道。但是在某天的下午,它咬到了自己,它才想起自己是一条毒蛇,于是晕死过去(不是毒死);又或者它往食物冲锋的时候,它失去控制,撞到了墙上。第一轮循环:第一步,出现食物;第二步,蛇不停运动;第三步,检查蛇是撞到自己或墙壁;由第四步起游戏有两条支线(A、B):A :第四步,蛇没有碰到自己或墙壁,蛇继续前进,绘制蛇的动作;第五步,判断蛇是否吃到食物,如果蛇吃到食物,身子变长,原来的食物消失;第六步,让玩家输入控制指令,让蛇在下一轮循环的第二步改变运动方向;第七步,第二轮循环的第一步,重复第一轮的步骤;B:第四步,蛇碰到自己或墙壁,终止游戏。结束部分:游戏结束时,显示“GAME OVER”,已经是约定俗成的规律了,我的游戏也不例外。除了游戏结束画面外,我还设置了一个游戏退出画面,“善始善终”嘛。有了上述的大致划分,我把整个程序划分成(13+2)个模块(其实就是函数)程序结构(流程图) 图流程图依据所需要处理的任务要求,规划输入数据和输出结果,决定存放数据的数据结构。C语言中数据结构集中体现在数据类型上,因此在进行C语言程序设计时,应统筹规划程序中所使用的变量,数组,指针等,以及它们的类型等。这点是很重要的,如果在此期间选择不合适的变量或者数组,将来修改就十分困难。现在分析一下贪吃蛇游戏中的元素,继而得出与它们对应的在程序中的描述:蛇:基本描述:长度,颜色,位置。对应数据与数据类型:长度—虽然可以用坐标表示,但是这样的话,运算量将很大,所以换算成较大的单位—节数,以固定长度的每节描述;坐标--整型;颜色--整型; 位置--X,Y坐标。增加的描述:蛇运动的方向,蛇的生命。对应数据与数据类型:这些描述是为了与程序的按键的输入部分与判断游戏结束部分相联系而设的。方向只有四个方向:上下左右。可以设置与之对应的四个整型数:3、4、2、1。生命就只有两种情况:死或生,对应0或1。食物: 基本描述:颜色,位置。对应数据与数据类型:由于颜色设成固定的,所以不再讨论。位置—X、Y坐标。增加的描述:食物的存在。对应数据与数据类型:这是为了避免重复出现食物而设置的,与绘制食物的函数有联系。只有两个值:0或1(没有食物或有食物)其他的元素:墙,由于它在显示上是作为背景而存在的,所以并没有什么说明实际的墙壁就是四条直线组成的边框,由坐标描述。还需要的变量:键盘键入的键值(作为全局变量,整型);经常要使用的循环变量;自定义的填充图案;说明文字的字符数组;游戏的记分;游戏的速度(蛇的速度)。图蛇的不停运动的关键算法的流程图各模块的功能及程序说明主要模块的实现思路和算法的流程图说明:关键所在——蛇不停移动的Snakemove():蛇的不停移动,就是蛇的下一节取代前一节的位置,在计算机中就是蛇下一节的位置坐标变成前一节的位置坐标。在上文中,已定义蛇的位置坐标为数组类型,一组坐标对应一节的位置,假设有i+1节,由0到i节,第i节的坐标取第i-1节的坐标,第i-1节的坐标取第i-2节的坐标……直到第1节取第0节的坐标。而第0节的坐标,即蛇头的坐标要往某个方向变化,变化量为蛇每节的长度。蛇的这种坐标轮换需要循环语句使其继续下去。 程序结果运行程序得到如下初始界面图: 图程序结果图用一个小矩形表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用两节表示: 图程序结果图蛇没有碰到自己或墙壁,蛇继续前进: 图程序结果图游戏结束时,显示“GAME OVER” 图程序结果图程序源代码及注释#define N 200#include <>#include <>#include <>#define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011bint i,key;int score=0;/*得分*/int gamespeed=50000;/*游戏速度自己调整*/struct Food{ int x;/*食物的横坐标*/ int y;/*食物的纵坐标*/ int yes;/*判断是否要出现食物的变量*/}food;/*食物的结构体*/struct Snake{ int x[N]; int y[N]; int node;/*蛇的节数*/ int direction;/*蛇移动方向*/ int life;/* 蛇的生命,0活着,1死亡*/}snake;void Init(void);/*图形驱动*/void Close(void);/*图形结束*/void DrawK(void);/*开始画面*/void GameOver(void);/*结束游戏*/void GamePlay(void);/*玩游戏具体过程*/void PrScore(void);/*输出成绩*//*主函数*/void main(void){ Init();/*图形驱动*/ DrawK();/*开始画面*/ GamePlay();/*玩游戏具体过程*/ Close();/*图形结束*/}/*图形驱动*/void Init(void){ int gd=DETECT,gm; registerbgidriver(EGAVGA_driver); initgraph(&gd,&gm,"c:\\program files\\winyes\\tc20h\\bgi"); cleardevice();}/*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/void DrawK(void){/*setbkcolor(LIGHTGREEN);*/ setcolor(11); setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/ for(i=50;i<=600;i+=10)/*画围墙*/ { rectangle(i,40,i+10,49); /*上边*/ rectangle(i,451,i+10,460);/*下边*/ } for(i=40;i<=450;i+=10) { rectangle(50,i,59,i+10); /*左边*/ rectangle(601,i,610,i+10);/*右边*/ }}/*玩游戏具体过程*/void GamePlay(void){ randomize();/*随机数发生器*/ ;/*1表示需要出现新食物,0表示已经存在食物*/ ;/*活着*/ ;/*方向往右*/ [0]=100;[0]=100;/*蛇头*/ [1]=110;[1]=100; ;/*节数*/ PrScore();/*输出得分*/ while(1)/*可以重复玩游戏,压ESC键结束*/ { while(!kbhit())/*在没有按键的情况下,蛇自己移动身体*/ { if()/*需要出现新食物*/ { ()%400+60; ()%350+60; while(!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/ ; while(!=0) ; ;/*画面上有食物了*/ } if()/*画面上有食物了就要显示*/ { setcolor(GREEN); rectangle(); } for(i=;i>0;i--)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/ { [i]=[i-1]; [i]=[i-1]; } /*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/ switch() { case 1:[0]+=10;break; case 2: [0]-=10;break; case 3: [0]-=10;break; case 4: [0]+=10;break; } for(i=3;i<;i++)/*从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来*/ { if([i]==[0]&&[i]==[0]) { GameOver();/*显示失败*/ ; break; } } if([0]<55||[0]>595||[0]<55|| [0]>455)/*蛇是否撞到墙壁*/ { GameOver();/*本次游戏结束*/ ; /*蛇死*/ } if()/*以上两种判断以后,如果蛇死就跳出内循环,重新开始*/ break; if([0]==[0]==)/*吃到食物以后*/ { setcolor(0);/*把画面上的食物东西去掉*/ rectangle(); []=-20;[]=-20; /*新的一节先放在看不见的位置,下次循环就取前一节的位置*/ ;/*蛇的身体长一节*/ ;/*画面上需要出现新的食物*/ score+=10; PrScore();/*输出新得分*/ } setcolor(4);/*画出蛇*/ for(i=0;i<;i++) rectangle([i],[i],[i]+10, [i]-10); delay(gamespeed); setcolor(0);/*用黑色去除蛇的的最后一节*/ rectangle([],[], []+10,[]-10); } /*endwhile(!kbhit)*/ if()/*如果蛇死就跳出循环*/ break; key=bioskey(0);/*接收按键*/ if(key==ESC)/*按ESC键退出*/ break; else if(key==UP&&!=4)/*判断是否往相反的方向移动*/ ; else if(key==RIGHT&&!=2) ; else if(key==LEFT&&!=1) ; else if(key==DOWN&&!=3) ; }/*endwhile(1)*/}/*游戏结束*/void GameOver(void){ cleardevice(); PrScore(); setcolor(RED); settextstyle(0,0,4); outtextxy(200,200,"GAME OVER"); getch();}/*输出成绩*/void PrScore(void){ char str[10]; setfillstyle(SOLID_FILL,YELLOW); bar(50,15,220,35); setcolor(6); settextstyle(0,0,2); sprintf(str,"score:%d",score); outtextxy(55,20,str);}/*图形结束*/void Close(void){ getch(); closegraph();}第3章 课程设计总结课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而C语言又是最常见,功能最强大的一种高级语言,因此做好C语言课程设计是十分必要的。 回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整半个月的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针,链表……通过这次课程设计之 后,我们把前面所学过的知识又重新温故了一遍。我做的是做贪吃蛇游戏。简单的一个,但对我一个初学者来说却是一个很大的困难。更加是第一次做课程设计,所以第一天下午在机房做了一个下午却丝毫没有进展,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教导是多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。可是现在一切都晚了,还好时间还算是充裕,只好拿出书本重新复习一下。特别是结构体,指针的部分,几乎是一片空白。不过经过几天的努力,大体上把课本上的知识点看了一遍,知识点也都基本是撑握了,所以一下一步就是开始正式的编程序了。不过毕竟是个新手,还是不知如何下手,于是就在网上下了一篇类似的程序,经过仔细的研究,终于读懂了C语言编程的基本过程和方法。 经过一波三折,终于开始正式编程。编程是一件很枯燥很无聊的事情,但是出于完成作业,得到学分的压力,还必须强破自己坚持下去,按照老师所说的模块化思想,分部分的进行编写。而且编程是一件高精度、模范化的事情,稍有疏乎都会影响全局,也可能因为某一处的小的错误而导致整个程序的无法运行。所以认真仔细就是非常重要的了。开始的时候真的感觉编程是一件很无聊的事情,不过当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比拟的。又经过几天的努力,终于把程序完成了,尽管程序还是有很多错误和漏洞,不过还是很高兴的。无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习C语言的一次实践作业,自己进步的证明。 通过这次课程设计,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过 程中,我会更加注视实践操作,使自己便好地学好计算机。在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。
你可以给我邮箱我给你发过去,顺便问一下你是不是内农大的?
那件事发生在我读二年级的时候.那天放学,我排着路队正准备回家.突然跟我走在同一排的几个同学悄悄在靠近我跟我说:"今天你跟我来,我带你去一个好地方"!我心想,反正今天作业不多,回到家一定能完成,不如就跟他们去吧!于是我们一起出了校门,就向东拐,一直走到了一个小公园前.我一看,啊,到处是绿树成荫,花香扑鼻,一条小河前有一个亭子,我跟同学便向那走去,等我们坐下后,一个同学从书包去拿出来一套厚厚的游戏卡,对我们说:"大家一起来玩吧!"说着将卡一张张地发给了我们,还说了怎样玩,有怎样的规则,不照规则玩要扣分,等等..我们便开心地玩了起来.不知不觉,天己渐渐地黑了,路旁的灯光渐渐在亮了起来,我怕妈妈着急,不得不向同学说再见,背上书包回家去了.当我吃完晚饭,妈妈说:"今晚去外婆家,你作业做完了吗?"因为要去外婆家,所以我就撒了一个谎说:"做好了"当时我心想作业那么少,回来也可以做.可从外婆家回来,已经是晚上10点多了,心想这么点作业,不如明天早上早点起床做吧.于是我就放心地睡下了." 起床了,起床了,再不起床来不及了"妈妈把我从睡梦中叫醒,我一看7点多了,妈妈给我烧的早饭,我急匆匆地吃了一两口便背着书包上学去了,到了学校我才想起来还没做作业,这可怎么办呀??我急得团团转,老师知道后当着全班同学的面狠狠地批评了我一顿.我当时十分后悔.通过了这件事,我悟出了一个道理,不管作业多还是少都不能拖,今天的事今天做,决不能留到明天,做别的事也一样,不能只为一时的放松,而误了做大事.
写单片机贪吃蛇游戏毕业设计开题报告文献综述方法如下。1、文献综述,研究思路研究方法及手段。2、参考文献进度安排。3、文献综述是开题报告中的最重要部分。
计算机网络安全及防范技术摘 要 主要阐述计算机信息网络攻击和入侵的特点、方法以及其安全防范手段。关键词 计算机网络安全 防范技术1 计算机网络安全的含义计算机网络安全的具体含义会随着使用者的变化而变化,使用者不同,对网络安全的认识和要求也就不同。例如从普通使用者的角度来说,可能仅仅希望个人隐私或机密信息在网络上传输时受到保护,避免被窃听、篡改和伪造;而网络提供商除了关心这些网络信息安全外,还要考虑如何应付突发的自然灾害、军事打击等对网络硬件的破坏,以及在网络出现异常时如何恢复网络通信,保持网络通信的连续性。从本质上来讲,网络安全包括组成网络系统的硬件、软件及其在网络上传输信息的安全性,使其不致因偶然的或者恶意的攻击遭到破坏,网络安全既有技术方面的问题,也有管理方面的问题,两方面相互补充,缺一不可。人为的网络入侵和攻击行为使得网络安全面临新的挑战。2 计算机网络攻击的特点计算机网络攻击具有下述特点:①损失巨大。由于攻击和入侵的对象是网络上的计算机,所以一旦他们取得成功,就会使网络中成千上万台计算机处于瘫痪状态,从而给计算机用户造成巨大的经济损失。如美国每年因计算机犯罪而造成的经济损失就达几百亿美元。平均一起计算机犯罪案件所造成的经济损失是一般案件的几十到几百倍。②威胁社会和国家安全。一些计算机网络攻击者出于各种目的经常把政府要害部门和军事部门的计算机作为攻击目标,从而对社会和国家安全造成威胁。③手段多样,手法隐蔽。计算机攻击的手段可以说五花八门。网络攻击者既可以通过监视网上数据来获取别人的保密信息;也可以通过截取别人的帐号和口令堂而皇之地进入别人的计算机系统;还可以通过一些特殊的方法绕过人们精心设计好的防火墙等等。这些过程都可以在很短的时间内通过任何一台联网的计算机完成。因而犯罪不留痕迹,隐蔽性很强。④以软件攻击为主。几乎所有的网络入侵都是通过对软件的截取和攻击从而破坏整个计算机系统的。它完全不同于人们在生活中所见到的对某些机器设备进行物理上的摧毁。因此,这一方面导致了计算机犯罪的隐蔽性,另一方面又要求人们对计算机的各种软件(包括计算机通信过程中的信息流)进行严格的保护。3 计算机网络中的安全缺陷及产生的原因网络安全缺陷产生的原因主要有:第一,TCP/IP的脆弱性。因特网的基石是TCP/IP协议。但不幸的是该协议对于网络的安全性考虑得并不多。并且,由于TCP/IP协议是公布于众的,如果人们对TCP/IP很熟悉,就可以利用它的安全缺陷来实施网络攻击。第二,网络结构的不安全性。因特网是一种网间网技术。它是由无数个局域网所连成的一个巨大网络。当人们用一台主机和另一局域网的主机进行通信时,通常情况下它们之间互相传送的数据流要经过很多机器重重转发,如果攻击者利用一台处于用户的数据流传输路径上的主机,他就可以劫持用户的数据包。第三,易被窃听。由于因特网上大多数数据流都没有加密,因此人们利用网上免费提供的工具就很容易对网上的电子邮件、口令和传输的文件进行窃听。第四,缺乏安全意识。虽然网络中设置了许多安全保护屏障,但人们普遍缺乏安全意识,从而使这些保护措施形同虚设。如人们为了避开防火墙代理服务器的额外认证,进行直接的PPP连接从而避开了防火墙的保护。4 网络攻击和入侵的主要途径网络入侵是指网络攻击者通过非法的手段(如破译口令、电子欺等)获得非法的权限,并通过使用这些非法的权限使网络攻击者能对被攻击的主机进行非授权的操作。网络入侵的主要途径有:破译口令、IP欺和DNS欺。口令是计算机系统抵御入侵者的一种重要手段,所谓口令入侵是指使用某些合法用户的帐号和口令登录到目的主机,然后再实施攻击活动。这种方法的前提是必须先得到该主机上的某个合法用户的帐号,然后再进行合法用户口令的破译。获得普通用户帐号的方法很多,如: 利用目标主机的Finger功能:当用Finger命令查询时,主机系统会将保存的用户资料(如用户名、登录时间等)显示在终端或计算机上;利用目标主机的服务:有些主机没有关闭的目录查询服务,也给攻击者提供了获得信息的一条简易途径;从电子邮件地址中收集:有些用户电子邮件地址常会透露其在目标主机上的帐号;查看主机是否有习惯性的帐号:有经验的用户都知道,很多系统会使用一些习惯性的帐号,造成帐号的泄露。IP欺是指攻击者伪造别人的IP地址,让一台计算机假冒另一台计算机以达到蒙混过关的目的。它只能对某些特定的运行TCP/IP的计算机进行入侵。IP欺利用了TCP/IP网络协议的脆弱性。在TCP的三次握手过程中,入侵者假冒被入侵主机的信任主机与被入侵主机进行连接,并对被入侵主机所信任的主机发起淹没攻击,使被信任的主机处于瘫痪状态。当主机正在进行远程服务时,网络入侵者最容易获得目标网络的信任关系,从而进行IP欺。IP欺是建立在对目标网络的信任关系基础之上的。同一网络的计算机彼此都知道对方的地址,它们之间互相信任。由于这种信任关系,这些计算机彼此可以不进行地址的认证而执行远程操作。域名系统(DNS)是一种用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的转换信息。通常,网络用户通过UDP协议和DNS服务器进行通信,而服务器在特定的53端口监听,并返回用户所需的相关信息。DNS协议不对转换或信息性的更新进行身份认证,这使得该协议被人以一些不同的方式加以利用。当攻击者危害DNS服务器并明确地更改主机名—IP地址映射表时,DNS欺就会发生。这些改变被写入DNS服务器上的转换表。因而,当一个客户机请求查询时,用户只能得到这个伪造的地址,该地址是一个完全处于攻击者控制下的机器的IP地址。因为网络上的主机都信任DNS服务器,所以一个被破坏的DNS服务器可以将客户引导到非法的服务器,也可以欺服务器相信一个IP地址确实属于一个被信任客户。5 常见的网络攻击及其防范对策 特洛伊木马特洛伊木马程序技术是黑客常用的攻击手段。它通过在你的电脑系统隐藏一个会在Windows启动时运行的程序,采用服务器/客户机的运行方式,从而达到在上网时控制你电脑的目的。特洛伊木马是夹带在执行正常功能的程序中的一段额外操作代码。因为在特洛伊木马中存在这些用户不知道的额外操作代码,因此含有特洛伊木马的程序在执行时,表面上是执行正常的程序,而实际上是在执行用户不希望的程序。特洛伊木马程序包括两个部分,即实现攻击者目的的指令和在网络中传播的指令。特洛伊木马具有很强的生命力,在网络中当人们执行一个含有特洛伊木马的程序时,它能把自己插入一些未被感染的程序中,从而使它们受到感染。此类攻击对计算机的危害极大,通过特洛伊木马,网络攻击者可以读写未经授权的文件,甚至可以获得对被攻击的计算机的控制权。防止在正常程序中隐藏特洛伊木马的主要方法是人们在生成文件时,对每一个文件进行数字签名,而在运行文件时通过对数字签名的检查来判断文件是否被修改,从而确定文件中是否含有特洛伊木马。避免下载可疑程序并拒绝执行,运用网络扫描软件定期监视内部主机上的监听TCP服务。 邮件炸弹电子邮件炸弹是最古老的匿名攻击之一,通过设置一台机器不断的大量的向同一地址发送电子邮件,攻击者能够耗尽接受者网络的带宽,占据邮箱的空间,使用户的存储空间消耗殆尽,从而阻止用户对正常邮件的接收,防碍计算机的正常工作。此种攻击经常出现在网络黑客通过计算机网络对某一目标的报复活动中。防止邮件炸弹的方法主要有通过配置路由器,有选择地接收电子邮件,对邮件地址进行配置,自动删除来自同一主机的过量或重复的消息,也可使自己的SMTP连接只能达成指定的服务器,从而免受外界邮件的侵袭。 过载攻击过载攻击是攻击者通过服务器长时间发出大量无用的请求,使被攻击的服务器一直处于繁忙的状态,从而无法满足其他用户的请求。过载攻击中被攻击者用得最多的一种方法是进程攻击,它是通过大量地进行人为地增大CPU的工作量,耗费CPU的工作时间,使其它的用户一直处于等待状态。防止过载攻击的方法有:限制单个用户所拥有的最大进程数;杀死一些耗时的进程。然而,不幸的是这两种方法都存在一定的负面效应。通过对单个用户所拥有的最大进程数的限制和耗时进程的删除,会使用户某些正常的请求得不到系统的响应,从而出现类似拒绝服务的现象。通常,管理员可以使用网络监视工具来发现这种攻击,通过主机列表和网络地址列表来分析问题的所在,也可以登录防火墙或路由器来发现攻击究竟是来自于网络外部还是网络内部。另外,还可以让系统自动检查是否过载或者重新启动系统。 淹没攻击正常情况下,TCP连接建立要经历3次握手的过程,即客户机向主机发送SYN请求信号;目标主机收到请求信号后向客户机发送SYN/ACK消息;客户机收到SYN/ACK消息后再向主机发送RST信号并断开连接。TCP的这三次握手过程为人们提供了攻击网络的机会。攻击者可以使用一个不存在或当时没有被使用的主机的IP地址,向被攻击主机发出SYN请求信号,当被攻击主机收到SYN请求信号后,它向这台不存在IP地址的伪装主机发出SYN/消息。由于此时主机的IP不存在或当时没有被使用所以无法向主机发送RST,因此,造成被攻击的主机一直处于等待状态,直至超时。如果攻击者不断地向被攻击的主机发送SYN请求,被攻击主机就会一直处于等待状态,从而无法响应其他用户的请求。对付淹没攻击的最好方法是实时监控系统处于SYN-RECEIVED状态的连接数,当连接数超过某一给定的数值时,实时关闭这些连接。参考文献1 胡道元.计算机局域网〔M〕.北京:清华大学出版社,20012 朱理森,张守连.计算机网络应用技术〔M〕.北京:专利文献出版社,20013 刘占全.网络管理与防火墙〔M〕.北京:人民邮电出版社,1999
《基于J2ME的贪吃蛇游戏设计》 要有开题报告 任务书 论文哦 要近两年的,基于J2ME的? 貌似在百度上几乎无人 我又JavaScript的 我有。 ..
用MVC方式实现的贪吃蛇游戏,共有4个类。运行GreedSnake运行即可。主要是观察者模式的使用,我已经添加了很多注释了。1、/* * 程序名称:贪食蛇 * 原作者:BigF * 修改者:algo * 说明:我以前也用C写过这个程序,现在看到BigF用Java写的这个,发现虽然作者自称是Java的初学者, * 但是明显编写程序的素养不错,程序结构写得很清晰,有些细微得地方也写得很简洁,一时兴起之 * 下,我认真解读了这个程序,发现数据和表现分开得很好,而我近日正在学习MVC设计模式, * 因此尝试把程序得结构改了一下,用MVC模式来实现,对源程序得改动不多。 * 我同时也为程序增加了一些自己理解得注释,希望对大家阅读有帮助。 */package mvcTest;/** * @author WangYu * @version * 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的观察者 (view); (new Thread(model)).start(); }} -------------------------------------------------------------2、package mvcTest;// ;import ;/** * MVC中的Controler,负责接收用户的操作,并把用户操作通知Model */public class SnakeControl implements KeyListener{ SnakeModel model; public SnakeControl(SnakeModel model){ = model; } public void keyPressed(KeyEvent e) { int keyCode = (); if (){ // 运行状态下,处理的按键 switch (keyCode) { case : (); break; case : (); break; case : (); break; case : (); break; case : case : (); break; case : case : (); break; case : case : (); break; default: } } // 任何情况下处理的按键,按键导致重新启动游戏 if (keyCode == || keyCode == || keyCode == ) { (); } } public void keyReleased(KeyEvent e) { } public void keyTyped(KeyEvent e) { }}-------------------------------------------------------------3、/* * */package mvcTest;/** * 游戏的Model类,负责所有游戏相关数据及运行 * @author WangYu * @version * Description: * * Create on :Date :2005-6-13 Time:15:58:33 * LastModified: * History: */// .*;import ;import ;import ;import ;/** * 游戏的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 = ; // 每次得速度变化率 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) { = maxX; = maxY; reset(); } public void reset(){ direction = ; // 蛇运行的方向 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]; (matrix[i], false); } // initial the snake // 初始化蛇体,如果横向位置超过20个,长度为10,否则为横向位置的一半 int initArrayLength = maxX > 20 ? 10 : maxX / 2; (); 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] (new Node(x, y)); matrix[x][y] = true; } // 创建食物 food = createFood(); matrix[][] = true; } public void changeDirection(int newDirection) { // 改变的方向不能与原来方向同向或反向 if (direction % 2 != newDirection % 2) { direction = newDirection; } } /** * 运行一次 * @return */ public boolean moveOn() { Node n = (Node) (); int x = ; int y = ; // 根据方向增减坐标值 switch (direction) { case UP: y--; break; case DOWN: y++; break; case LEFT: x--; break; case RIGHT: x++; break; } // 如果新坐标落在有效范围内,则进行处理 if ((0 <= x && x < maxX) && (0 <= y && y < maxY)) { if (matrix[x][y]) { // 如果新坐标的点上有东西(蛇体或者食物) if (x == && y == ) { // 吃到食物,成功 (food); // 从蛇头赠长 // 分数规则,与移动改变方向的次数和速度两个元素有关 int scoreGet = (10000 - 200 * countMove) / timeInterval; score += scoreGet > 0 ? scoreGet : 10; countMove = 0; food = createFood(); // 创建新的食物 matrix[][] = true; // 设置食物所在位置 return true; } else // 吃到蛇体自身,失败 return false; } else { // 如果新坐标的点上没有东西(蛇体),移动蛇体 (new Node(x, y)); matrix[x][y] = true; n = (Node) (); matrix[][] = false; countMove++; return true; } } return false; // 触到边线,失败 } public void run() { running = true; while (running) { try { (timeInterval); } catch (Exception e) { break; } if (!paused) { if (moveOn()) { setChanged(); // Model通知View数据已经更新 notifyObservers(); } else { (null, "you failed", "Game Over", ); break; } } } running = false; } private Node createFood() { int x = 0; int y = 0; // 随机获取一个有效区域内的与蛇体和食物不重叠的位置 do { Random r = new Random(); x = (maxX); y = (maxY); } while (matrix[x][y]); return new Node(x, y); } public void speedUp() { timeInterval *= speedChangeRate; } public void speedDown() { timeInterval /= speedChangeRate; } public void changePauseState() { paused = !paused; } public String toString() { String result = ""; for (int i = 0; i < (); ++i) { Node n = (Node) (i); result += "[" + + "," + + "]"; } return result; }}class Node { int x; int y; Node(int x, int y) { = x; = y; }} ------------------------------------------------------------4、package mvcTest;// .*;import .*;import ;import ;import ;import ;/** * MVC模式中得Viewer,只负责对数据的显示,而不用理会游戏的控制逻辑 */public class SnakeView implements Observer { SnakeControl control = null; SnakeModel model = null; JFrame mainFrame; Canvas paintCanvas; JLabel labelScore; public static final int canvasWidth = 200; public static final int canvasHeight = 300; public static final int nodeWidth = 10; public static final int nodeHeight = 10; public SnakeView(SnakeModel model, SnakeControl control) { = model; = control; mainFrame = new JFrame("GreedSnake"); Container cp = (); // 创建顶部的分数显示 labelScore = new JLabel("Score:"); (labelScore, ); // 创建中间的游戏显示区域 paintCanvas = new Canvas(); (canvasWidth + 1, canvasHeight + 1); (control); (paintCanvas, ); // 创建底下的帮助栏 JPanel panelButtom = new JPanel(); (new BorderLayout()); JLabel labelHelp; labelHelp = new JLabel("PageUp, PageDown for speed;", ); (labelHelp, ); labelHelp = new JLabel("ENTER or R or S for start;", ); (labelHelp, ); labelHelp = new JLabel("SPACE or P for pause", ); (labelHelp, ); (panelButtom, ); (control); (); (false); (); (true); } void repaint() { Graphics g = (); //draw background (); (0, 0, canvasWidth, canvasHeight); // draw the snake (); LinkedList na = ; Iterator it = (); while (()) { Node n = (Node) (); drawNode(g, n); } // draw the food (); Node n = ; drawNode(g, n); updateScore(); } private void drawNode(Graphics g, Node n) { ( * nodeWidth, * nodeHeight, nodeWidth - 1, nodeHeight - 1); } public void updateScore() { String s = "Score: " + ; (s); } public void update(Observable o, Object arg) { repaint(); }}-------------------------------------------------------------
《基于J2ME的贪吃蛇游戏设计》 要有开题报告 任务书 论文哦 要近两年的,基于J2ME的? 貌似在百度上几乎无人 我又JavaScript的 我有。 ..
技术跟答辩有一毛钱关系吗
我可以帮你搞定.
设计思路,关键算法,具体实现