2022年2022年计算机科学与技术专业综合课程设计报告 .pdf
《2022年2022年计算机科学与技术专业综合课程设计报告 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算机科学与技术专业综合课程设计报告 .pdf(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、. . 计算机科学与技术专业12 级综合课程设计报告题目:贪吃蛇小游戏成员:姓名学号郝兴明 201207051 指导教师:王金龙开始日期: 2015 年 12 月 7 日完成日期: 2016 年 01 月 8 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 27 页 - - - - - - - - - . . 2012 级综合课程设计评价表题目贪吃蛇小游戏指导老师王金龙项 目 内 容 简 介本次综合课程设计的内容为“贪吃蛇”小游戏,游戏操作简单,设计却很复杂,主要实现的
2、内容为:通过键盘控制蛇的移动,判断蛇是否死亡,以及通过相应按钮来控制游戏的进程。评价工作量 ( 饱满、达到要求、不饱满) ;运行效果 ( 良好、有小问题、错误较多) ;文档及报告撰写 ( 规范、较规范、不规范、未提交) ;答辩 ( 优秀、良好、一般、较差 ); 团队分工及协作 ( 很好、较好、一般、较差 )。成绩学号姓 名组内分工贡献排名成绩201207051 郝兴明程序设计、编写、测试、报告答辩小组签字名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 27 页 - - -
3、 - - - - - - . . 青岛理工大学课程设计任务书姓名组内分工郝兴明程序设计、编写、测试、报告院 (系) :计算机工程专业:计算机科学与技术任务起至日期: 2015年 12 月 7 日 至 2016 年 01 月 8 日课程设计题目:贪吃蛇小游戏主要内容及要求:“贪吃蛇”小游戏主要应实现以下几个方面的功能:1. 通过方向键控制蛇的移动2. 蛇吃到食物后身体变长3. 食物的随机产生4. 蛇吃到自己身体或墙后死亡5. 蛇在移动过程中可以暂停/ 继续6. 可手动停止游戏工作计划安排:2015 年 12 月 07 日-2015年 12 月 10 日需求分析2015 年 12 月 11 日-2
4、015年 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 日项目答辩名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 27 页 - - - - - - - - - . . 第 1
5、 部分概述1. 内容简介“贪吃蛇”是一款经典的小游戏,以其操作简单、娱乐性强而广受欢迎。一条蛇在封闭的围墙内移动,在围墙内随机出现一个食物,通过键盘的方向键来控制蛇的移动,当蛇吃到食物后蛇的身体长一节,同时出现一个新的食物等待蛇去吃,如果蛇在移动过程中蛇头吃到自己身体或者吃到围墙的石头,则蛇死亡,游戏结束。作为一个小游戏,设计中必须要考虑人机交互和用户体验,因此游戏界面应简洁直观,让用户可直接了解游戏的操作。“贪吃蛇”的设计对java编程的提高和进阶是一次很好的锻炼机会。本次设计使用java 语言,通过GUI 编程、线程、事件监听等技术来实现游戏的开发,功能虽然较少,但游戏的基本功能都具备,可
6、正常进行游戏。2. 功能介绍“贪吃蛇”小游戏的设计较复杂,要想实现所有功能需要很高的技术要求和很强的编程能力。由于本人技术能力欠缺,所以只能实现基本的游戏功能,通过画图的方法来显示出蛇的身体,食物的位置和墙的位置。主要操作是通过键盘的方向键来控制蛇的移动方向,无效方向要忽略;当蛇吃到食物时蛇的身体变长一节,同时产生一个新的食物;蛇吃到自己身体或者吃到石头时死亡,游戏结束;在游戏控制区域可通过相应按钮来控制游戏的运行进度。3. 设计环境本次游戏设计的环境及开发工具如下:运行环境: Windows 7 编程语言: java 开发环境: eclipse 名师资料总结 - - -精品资料欢迎下载 -
7、- - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 27 页 - - - - - - - - - . . 第 2 部分 需求分析1 用户特点分析游戏开发成功后,可适用于各类人群使用,所以要求界面简单,操作方便,不需要进行专门培训就可以学会如何操作2.功能需求2.1 图形界面的需求游戏画布区主要包括蛇的身体出现的位置,食物随机出现的位置,墙的固定位置,以及蛇可移动的区域。游戏控制区域显示按钮及操作提示。2.2 属性需求在可使用性方面,要求各个功能实现简单,操作方便,系统处理正确;整个系统恢复性能号,链接速度快,以确保系统可
8、适用性好。另外,还要求系统的可扩展性、可维护性、可移植性良好。2.3 功能模块需求软件开发过程中的功能模块设计,主要解决实现该游戏需求的程序模块设计问题。包括如何把该游戏划分成若干个模块、决定各个模块之间的接口、模块之间穿的的信息,以及模块结构的设计等。2.3.1 游戏功能本游戏主要完成以下几方面的功能:1)游戏控制功能2)界面布局3)其他辅助功能名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 27 页 - - - - - - - - - . . 2.3.2 功能模块划分
9、根据游戏需求,整个游戏主要划分为游戏界面和游戏控制两个模块。见图 2.1 。游戏界面是整个游戏的运行区域,可动态的观察游戏过程。游戏控制是用来控制游戏进程的,可以开始游戏,暂停/ 继续游戏,停止游戏。图 2.1 游戏模块划分贪吃蛇游戏游戏界面模块游戏控制模块名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 27 页 - - - - - - - - - . . 第 3 部分系统设计1. 系统流程图系统流程图是描绘系统物理模型的传统工具。它的基本思想是用图形符号描绘系统里面的每
10、个部件,表达信息在各个部件之间流动的情况。是是否否否是图 3.1 系统流程图控制蛇移动开始游戏身体变长是 否 吃到自己是 否 撞墙是 否 吃到食物蛇死亡游戏结束名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 27 页 - - - - - - - - - . . 2. 类模块设计本次设计遵循MVC 设计模式,主要类之间的关系如下:图 3.2 MVC 设计模式体现Snake类:设置蛇的属性,以及蛇的产生、移动、吃食物、死亡等方法。Food 类:设置食物的随机产生和是否被吃掉等
11、方法。Controller类:监听 Snake 类以及按键事件,并进行处理。Game 类:用来控制游戏进程和界面的显示。Snake 类(蛇类)Food 类(食物类)Ground 类(墙类)Controller类 ( 控 制器)Game类(主面板)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 27 页 - - - - - - - - - . . 3. 各类的详细设计表 3.1 Snake 类成员作用private boolean pause; 判断是否暂停private
12、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 isSnak
13、eEatFood(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(Snak
14、e snake,Food food,Ground ground,GamePanel gamePanel); 初始化控制器类Public void keyPressed(KeyEvent e); 监听按键事件Public void snakeMoved(Snake snake); 监听蛇的移动Public void newGame(); 创建新游戏名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 27 页 - - - - - - - - - . . Public void s
15、etSnake(Snake snake); 设置蛇名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 27 页 - - - - - - - - - . . 第 4 部分 系统实现1. 界面展示“贪吃蛇”小游戏适合广大群体,故界面应以简洁直观为主,让玩家一眼便可了解游戏的操作。具体游戏界面如下:游戏初始化界面图 4.1 游戏初始化界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -
16、- - - 第 11 页,共 27 页 - - - - - - - - - . . 游戏开始界面图 4.2 游戏开始运行界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 27 页 - - - - - - - - - . . 游戏结束界面图 4.3 游戏结束界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 27 页 - - - - - - -
17、- - . . 2. 游戏的具体实现代码2.1 游戏画布区publicvoid display(Snake snake,Food food ,Ground ground ) System. out .println(GamePanels display); this . snake = snake; this . food = food ; this . ground = ground ; this .repaint(); protectedvoid paintComponent(Graphics g) g.setColor(new Color(0 xcfcfcf); g.fillRect(0
18、, 0, Global.WIDTH * Global.CELL_SIZE , Global. HEIGHT * Global.CELL_SIZE ); if ( ground != null & snake != null & food != null ) this . ground .drawMe( g); this . snake.drawMe( g); this . food .drawMe( g); 2.2 控制区privatestaticfinallongserialVersionUID = 1L; privatefinal JButton button_start = new JB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年计算机科学与技术专业综合课程设计报告 2022 计算机科学 技术 专业 综合 课程设计 报告
限制150内