欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Java课程设计之贪吃蛇_1.docx

    • 资源ID:26513643       资源大小:16.37KB        全文页数:14页
    • 资源格式: DOCX        下载积分:30金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要30金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Java课程设计之贪吃蛇_1.docx

    Java课程设计之贪吃蛇 Java课程设计之贪吃蛇 安阳工学院计算机学院 JAVA课程设计报告 专业班级: 学生姓名: 学生学号: 小组成员: 指导教师姓名: 宋强 目录 一选题目的与系统概述 (1) 1.1选题目的 (1) 1.2系统概述.1 二系统可行性分析与相关技术背景分析 (2) 2.1系统可行性分析 (2) 2.2相关技术背景分析.2 三系统设计与关键技术 (3) 3.1系统设计 (3) 3.2关键技术.5 四系统测试与操作实施方法.9 五系统设计总结与回顾 (11) 六参考文献 (12) 一、选题目的与系统概述 1.1 选题目的 贪吃蛇游戏是一款非常经典的游戏,因为它比较简单有趣,无论老少都比较适合。贪吃蛇的设计对每一个Java语言设计者进行语言提高和进阶都是一个很好的锻炼机会。 在这个游戏的设计中,牵涉到图形界面的显示与更新、数据的收集与更新,并且在这个游戏的开发中,还要应用类的继承机制以及一些设计模式。因此,如何设计和开发好这个贪吃蛇游戏,对于提高Java开发水平和系统的设计能力有极大的帮助。在设计开发过程中,需要处理好各个类之间的继承关系,还要处理各个类相应的封装,并且还要协调好各个模块之间的逻辑依赖关系和数据通信关系。 正是因为如此,本次设计的目的在于学习Java程序设计基本技术,学习用Netbeans开发Java程序的相关技术,熟悉游戏“贪吃蛇”的需求,熟悉项目开发的完整过程。学会怎样进行一个项目的需求分析、概要设计、详细设计等软件开发过程,熟练地掌握Java程序设计的基本技术和方法,熟练地掌握Netbeans环境的使用方法,培养起初步的项目分析能力和程序设计能力。 1.2 系统概述 1.2.1 设计的主要内容 贪吃蛇游戏设计与实现,主要分为以下二个模块:游戏主界面模块和游戏控制模块。在此只实现游戏的游戏主界面模块、游戏控制模块。可实现开始、暂停、改变速度,更换颜色等功能。 1.2.2 设计要达到的目标 本次设计要达到的目标分别从以下模块进行阐述: 游戏主界面模块: 游戏的主界面是进入游戏后,能够给玩家第一感官的部分,主要包括游戏场景、状态栏、颜色设置、网格模式、及相关提示信息等。从很大程度上决定了玩家对游戏的兴趣问题,因此,游戏的主界面应该力求美观,爽心悦目。 游戏控制模块: 这个模块是游戏的中心环节,主要完成控制游戏的开始、暂停等功能。为了能 - 1 - 够给玩家一个很好的游戏环境,这部分应该做到易懂、易操作。 1.2.3游戏设计环境 本次课程设计所涉及和实现的是用Java编程语言和Netbeans开发工具开发的贪吃蛇游戏。本次设计的系统环境及工具如下: 编程语言:Java 使用工具:jdk-6u16-windows-i586 Netbeans IDE 7.0.1 二、系统可行性分析与相关技术背景分析 2.1系统可行性分析 游戏开发成功后,最终用户为各个年龄段的人群,用户范围相当广泛。本游戏友好的用户界面,简单易学的按钮操作以及简单通俗的游戏规则,使广大的用户不需要专门进行培训,就可以立即学会如何使用。 本游戏的核心算法是如何实现移动和吃掉食物,没有碰到食物时,把当前远东方向上的下个节点入队,并以蛇节点的颜色绘制这个节点,然后把头指针所指的节点出队,并以游戏框架的背景颜色绘制出队的节点,这样就可以达到出队的效果。而在吃食物的时候,只需把食物入队即可。实现贪吃蛇的基本蛇的移动、吃到食物身体增长、碰壁后不会死亡,能够暂停和开始,以及当吃到自身时不会死亡。 在可使用性方面,要求各个功能实现简单,操作方便,系统处理正确;整个系统恢复性能好,连接速度快,以确保系统可使用性好。另外,还要求系统的可扩展性、可维护性、可移植性良好。软件开发过程中的功能模块设计,主要解决实现该游戏需求的程序模块设计问题。包括如何把该游戏划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及模块结构的设计等。 2.2相关技术背景分析 本次设计要运用java语言来完成,java 的特点是面向对象,可移植性,安全性,并发机制,支持可视化图形界面等,运用java 语言能够开发出安全,美观,JDK 运行高效的游戏。本实验用到了Sun公司开发的jdk的java运行环境,是整JavaJavaJavaJava 个的核心,包括了运行环境,工具和基础的类库。 Java NetbeansNetBeans IDE用到了语言的项目开发软件。是一个屡获殊荣的,WindowsMacLinuxSolarisNetBeans集成开发环境可以方便的在,和中运行,包 - 2 - NetBeans IDEJava括开源的开发环境和应用平台,可以使开发人员利用平台能够快 WebNetBeans IDEPHPRuby速创建、企业、桌面以及移动的应用程序,目前支持、JavaScriptAjaxGroovyGrailsC /C + +NetBeans、和等开发语言。开发环境提供了丰富的产品文档和培训资源以及大量的第三方插件。本课程项目是运用的Netbeans7.0.1的最新版本。 三、系统设计与关键技术 3.1 系统设计 3.1.1游戏设计流程图 本次游戏设计的处理流程如图1所示。 进入游戏画面 按ENTER键开始游戏。 键盘操作: 左移 右移 向下向上 蛇头碰到蛇尾游戏中途欲中断,稍 后继续游戏 是 出现“是否再来一按ENTER键暂停游戏 局,” 否 再次按ENTER键,游 游戏结束戏恢复 图1 游戏处理流程图 - 3 - 3.1.2 游戏功能设计 本系统主要完成以下几方面的功能: 1. 游戏控制功能包括游戏的开始、暂停、结束 2. 界面布局 3. 其他辅助功能 3.1.3 模块的划分设计 根据游戏需求中游戏所要实现的功能,整个游戏分为二个模块进行具体的设计, 如图2所示。 贪吃蛇游戏 游游 戏戏 主控块界制 面模 模块 图2 游戏总设计模块 1、游戏主界面模块 游戏界面主框架主要包括游戏场景、状态栏、颜色设置、网格模式、及相关提示信息。 游戏界面主框架的主要结构图如图3所示。 游戏的主界面框架 )面游面游 即戏戏 游图控 戏形制 画区按 布域钮) 界界 图3 游戏主界面框架 - 4 - 2、游戏控制模块 游戏控制模块主要通过键盘上的按键来控制游戏的开始、游戏的暂停、游戏的结束这三个功能以及控制游戏速度变化、蛇的运动方向。在这个模块中,需要给各个按键或文本框加入代码,来对上述的功能加以进一步的实现。 游戏控制模块的主要框架如图4所示。 游戏控制模块 游游游 戏戏戏 的的的 暂退开 停出始 功功功 能能能 图4 游戏控制模块框架 游戏开始控制:按ENTER键,游戏画布的贪吃蛇即开始游动,游戏正式开始。 游戏暂停控制:中途可按ENTER键,游戏暂停;再按NETER键,游戏继续。 游戏退出控制:关闭界面,退出该游戏。 3.2 关键技术 3.2.1 功能包的设计 1、mysnake包 包含Main方法和MainGui方法 (1) main类 整个程序的入口 package mysnake; public class Main public static void main(String agrs) new MainGui(); - 5 - (2)MainGui类 主界面类,继承自JFrame类,蛇场Box和设置面板settingPanel置于其上,包括对主窗口的属性的设置、注册监听者等 2、mysnake.box包 包含Box类、Food类、Snake类。设置游戏运行状态,用来设计游戏的用户界面,设置蛇头颜色,食物颜色,背景颜色,随机块颜色,移动以及分数更新,实现上下左右移动的方法接口。 其中更新属性面板的方法如下: private void updateProperty() /更新蛇长 gui.getSettingPanel().getSnakeLengthLabel().setText("" + getSnake().getBody().size(); /更新方向 switch (gui.getBox().getSnake().getDirection() case Snake.DIRECTION_DOWN: gui.getSettingPanel().getDirectionLabel().setText(" 下,?"); break; case Snake.DIRECTION_LEFT: gui.getSettingPanel().getDirectionLabel().setText(" 左,?"); break; case Snake.DIRECTION_RIGHT: gui.getSettingPanel().getDirectionLabel().setText(" 右,?"); break; case Snake.DIRECTION_UP: gui.getSettingPanel().getDirectionLabel().setText(" 上,?"); break; 3、mysnake.contral包 包含SettingListener类、SnakeKeyListener类。SettingListener类是主界面类,继承自JFrame,蛇场Box和设置面板settingPanel置于其上,包括对主窗口的属性的设置、注册监听者等;SnakeKeyListener类设置按键监听,根据按键改 - 6 - 变蛇的方向、速度等设置。 其中颜色设置的代码实现如下: private Color getComboBoxColor(JComboBox comboBox) Color newColor; String newColorString = (String) comboBox.getSelectedItem(); if (newColorString.equals("黑色") newColor = Color.BLACK; else if (newColorString.equals("蓝色") newColor = Color.BLUE; else if (newColorString.equals("青色") newColor = Color.CYAN; else if (newColorString.equals("深灰色") newColor = Color.DARK_GRAY; else if (newColorString.equals("灰色") newColor = Color.GRAY; else if (newColorString.equals("绿色") newColor = Color.GREEN; else if (newColorString.equals("浅灰色") newColor = Color.LIGHT_GRAY; else if (newColorString.equals("洋红色") newColor = Color.MAGENTA; else if (newColorString.equals("橘黄色") newColor = Color.ORANGE; else if (newColorString.equals("粉红色") newColor = Color.PINK; else if (newColorString.equals("红色") newColor = Color.RED; else if (newColorString.equals("白色") newColor = Color.WHITE; else if (newColorString.equals("黄色") newColor = Color.YELLOW; else newColor = Color.BLACK; return newColor; 4、mysnake.settingground包 包括clock类和一个设计窗体。其中clock类主要功能是计时,代码实现如下: public class Clock /*时间线程*/ - 7 - private Thread timeThread; /*经历的时间*/ private int time = 0; /*计时器*/ private Timer counTtimer; public Clock() timeThread = new Thread(new Runnable() public void run() counTtimer = new Timer(1000, new ActionListener() public void actionPerformed(ActionEvent e) setTime(getTime() + 1); ); getCounTtimer().start(); ); public Thread getTimeThread()

    注意事项

    本文(Java课程设计之贪吃蛇_1.docx)为本站会员(h****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开