计算机科学与技术专业《综合课程设计》报告_第1页
计算机科学与技术专业《综合课程设计》报告_第2页
计算机科学与技术专业《综合课程设计》报告_第3页
计算机科学与技术专业《综合课程设计》报告_第4页
计算机科学与技术专业《综合课程设计》报告_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机科学与技术专业 12 级综合课程设计报告题目: 贪吃蛇小游戏 成员: 姓名 学号郝兴明 201207051 指导教师: 王金龙 开始日期: 2015 年 12 月 7 日 完成日期: 2016 年 01 月 8 日 计算机科学与技术专业 2012 级综合课程设计报告- I -2012 级综合课程设计评价表题 目 贪吃蛇小游戏 指导老师 王金龙项 目 内 容 简 介本次综合课程设计的内容为“贪吃蛇”小游戏,游戏操作简单,设计却很复杂,主要实现的内容为:通过键盘控制蛇的移动,判断蛇是否死亡,以及通过相应按钮来控制游戏的进程。成绩评价工作量 (饱满、达到要求、不饱满);运行效果 (良好、有小问题、错误较多);文档及报告撰写 (规范、较规范、 不规范、未提交) ;答辩 ( 优秀、良好、 一般、 较差);团队分工及协作 (很好、较好、 一般、 较差)。学 号 姓 名 组内分工 贡献排名 成 绩201207051 郝兴明 程序设计、编写、测试、报告答辩小组签字计算机科学与技术专业 2012 级综合课程设计报告- II -青岛理工大学课程设计任务书姓 名 组内分工郝兴明 程序设计、编写、测试、报告 院 (系): 计算机工程 专 业: 计算机科学与技术 任务起至日期: 2015 年 12 月 7 日 至 2016 年 01 月 8 日 课程设计题目: 贪吃蛇小游戏 主要内容及要求:“贪吃蛇”小游戏主要应实现以下几个方面的功能:1. 通过方向键控制蛇的移动2.蛇吃到食物后身体变长3.食物的随机产生4.蛇吃到自己身体或墙后死亡5.蛇在移动过程中可以暂停/继续6.可手动停止游戏工作计划安排:2015 年 12 月 07 日-2015 年 12 月 10 日 需求分析2015 年 12 月 11 日-2015 年 12 月 15 日 概要设计2015 年 12 月 16 日-2015 年 12 月 20 日 框架搭建2015 年 12 月 21 日-2015 年 12 月 30 日 详细功能设计2015 年 12 月 31 日-2016 年 01 月 03 日 程序测试2016 年 01 月 04 日-2016 年 01 月 05 日 书写报告2016 年 01 月 06 日 项目答辩计算机科学与技术专业 2012 级综合课程设计报告- 1 -第 1 部分 概述1. 内容简介“贪吃蛇”是一款经典的小游戏,以其操作简单、娱乐性强而广受欢迎。一条蛇在封闭的围墙内移动,在围墙内随机出现一个食物,通过键盘的方向键来控制蛇的移动,当蛇吃到食物后蛇的身体长一节,同时出现一个新的食物等待蛇去吃,如果蛇在移动过程中蛇头吃到自己身体或者吃到围墙的石头,则蛇死亡,游戏结束。作为一个小游戏,设计中必须要考虑人机交互和用户体验,因此游戏界面应简洁直观,让用户可直接了解游戏的操作。“贪吃蛇”的设计对 java 编程的提高和进阶是一次很好的锻炼机会。本次设计使用 java 语言,通过 GUI 编程、线程、事件监听等技术来实现游戏的开发,功能虽然较少,但游戏的基本功能都具备,可正常进行游戏。2. 功能介绍“贪吃蛇”小游戏的设计较复杂,要想实现所有功能需要很高的技术要求和很强的编程能力。由于本人技术能力欠缺,所以只能实现基本的游戏功能,通过画图的方法来显示出蛇的身体,食物的位置和墙的位置。主要操作是通过键盘的方向键来控制蛇的移动方向,无效方向要忽略;当蛇吃到食物时蛇的身体变长一节,同时产生一个新的食物;蛇吃到自己身体或者吃到石头时死亡,游戏结束;在游戏控制区域可通过相应按钮来控制游戏的运行进度。3. 设计环境本次游戏设计的环境及开发工具如下:运行环境:Windows 7编程语言:java开发环境:eclipse计算机科学与技术专业 2012 级综合课程设计报告- 2 -第 2 部分 需求分析1 用户特点分析游戏开发成功后,可适用于各类人群使用,所以要求界面简单,操作方便, 不需要进行专门培训就可以学会如何操作2. 功能需求2.1 图形界面的需求游戏画布区主要包括蛇的身体出现的位置,食物随机出现的位置,墙的固定位置,以及蛇可移动的区域。游戏控制区域显示按钮及操作提示。2.2 属性需求在可使用性方面,要求各个功能实现简单,操作方便,系统处理正确;整个系统恢复性能号,链接速度快,以确保系统可适用性好。另外,还要求系统的可扩展性、可维护性、可移植性良好。2.3 功能模块需求软件开发过程中的功能模块设计,主要解决实现该游戏需求的程序模块设计问题。包括如何把该游戏划分成若干个模块、决定各个模块之间的接口、模块之间穿的的信息,以及模块结构的设计等。2.3.1 游戏功能本游戏主要完成以下几方面的功能:1) 游戏控制功能2) 界面布局3) 其他辅助功能计算机科学与技术专业 2012 级综合课程设计报告- 3 -2.3.2 功能模块划分根据游戏需求,整个游戏主要划分为游戏界面和游戏控制两个模块。见图 2.1 。游戏界面是整个游戏的运行区域,可动态的观察游戏过程。游戏控制是用来控制游戏进程的,可以开始游戏,暂停/继续游戏,停止游戏。图 2.1 游戏模块划分贪吃蛇游戏游戏界面模块游戏控制模块计算机科学与技术专业 2012 级综合课程设计报告- 4 -第 3 部分 系统设计1. 系统流程图系统流程图是描绘系统物理模型的传统工具。它的基本思想是用图形符号描绘系统里面的每个部件,表达信息在各个部件之间流动的情况。是 是 否 否 否是图 3.1 系统流程图控制蛇移动开始游戏身体变长是否吃到自己是否撞墙是否吃到食物蛇死亡游戏结束计算机科学与技术专业 2012 级综合课程设计报告- 5 -2.类模块设计本次设计遵循 MVC 设计模式,主要类之间的关系如下:图 3.2 MVC 设计模式体现Snake 类:设置蛇的属性,以及蛇的产生、移动、吃食物、死亡等方法。Food 类:设置食物的随机产生和是否被吃掉等方法。Controller 类:监听 Snake 类以及按键事件,并进行处理。Game 类:用来控制游戏进程和界面的显示。Snake 类(蛇类)Food 类(食物类)Ground 类(墙类)Controller类(控制器)Game 类(主面板)计算机科学与技术专业 2012 级综合课程设计报告- 6 -3.各类的详细设计表 3.1 Snake 类成员 作用private boolean pause; 判断是否暂停private boolean life; 判断蛇是否死亡private boolean isMoving; 判断蛇是否在移动private LinkedListbody; 存放蛇的身体节点private void init(); 初始化方法public void move(); 蛇的移动方法public void drawMe(Graphics g); 画出蛇的身体public void start(); 让蛇开始移动public void die(); 让蛇死亡表 3.2 Food 类:Public void newFood(Point p); 设置食物产生的位置Public Boolean isSnakeEatFood(Snake snake); 判断蛇是否吃到食物public void drawMe(Graphics g); 在画布上画出食物表 3.3 Ground 类:Private int rocks; 存放石头的数组Public Ground(); 初始化石头Public Boolean isSnakeEatRock(Snake snake); 判断是否吃到石头Public Point getPoint(); 设置食物产生的位置public void drawMe(Graphics g); 在画布上画出石头表 3.4 Controller 类:Public Controller(Snake snake,Food food,Ground ground,GamePanel gamePanel);初始化控制器类Public void keyPressed(KeyEvent e); 监听按键事件Public void snakeMoved(Snake snake); 监听蛇的移动Publ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论