您好,欢迎访问三七文档
当前位置:首页 > 学术论文 > 毕业论文 > 计算机科学与技术专业《综合课程设计》报告
计算机科学与技术专业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.设计环境本次游戏设计的环境及开发工具如下:运行环境:Windows7编程语言: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.2MVC设计模式体现Snake类:设置蛇的属性,以及蛇的产生、移动、吃食物、死亡等方法。Food类:设置食物的随机产生和是否被吃掉等方法。Controller类:监听Snake类以及按键事件,并进行处理。Game类:用来控制游戏进程和界面的显示。Snake类(蛇类)Food类(食物类)Ground类(墙类)Controller类(控制器)Game类(主面板)计算机科学与技术专业2012级《综合课程设计》报告-6-3.各类的详细设计表3.1Snake类成员作用privatebooleanpause;判断是否暂停privatebooleanlife;判断蛇是否死亡privatebooleanisMoving;判断蛇是否在移动privateLinkedListPointbody;存放蛇的身体节点privatevoidinit();初始化方法publicvoidmove();蛇的移动方法publicvoiddrawMe(Graphicsg);画出蛇的身体publicvoidstart();让蛇开始移动publicvoiddie();让蛇死亡表3.2Food类:PublicvoidnewFood(Pointp);设置食物产生的位置PublicBooleanisSnakeEatFood(Snakesnake);判断蛇是否吃到食物publicvoiddrawMe(Graphicsg);在画布上画出食物表3.3Ground类:Privateint[][]rocks;存放石头的数组PublicGround();初始化石头PublicBooleanisSnakeEatRock(Snakesnake);判断是否吃到石头PublicPointgetPoint();设置食物产生的位置publicvoiddrawMe(Graphicsg);在画布上画出石头表3.4Controller类:PublicController(Snakesnake,Foodfood,Groundground,GamePanelgamePanel);初始化控制器类PublicvoidkeyPressed(KeyEvente);监听按键事件PublicvoidsnakeMoved(Snakesnake);监听蛇的移动PublicvoidnewGame();创建新游戏PublicvoidsetSnake(Snakesnake);设置蛇计算机科学与技术专业2012级《综合课程设计》报告-7-第4部分系统实现1.界面展示“贪吃蛇”小游戏适合广大群体,故界面应以简洁直观为主,让玩家一眼便可了解游戏的操作。具体游戏界面如下:游戏初始化界面图4.1游戏初始化界面计算机科学与技术专业2012级《综合课程设计》报告-8-游戏开始界面图4.2游戏开始运行界面计算机科学与技术专业2012级《综合课程设计》报告-9-游戏结束界面图4.3游戏结束界面计算机科学与技术专业2012级《综合课程设计》报告-10-2.游戏的具体实现代码2.1游戏画布区publicvoiddisplay(Snakesnake,Foodfood,Groundground){System.out.println(GamePanel'sdisplay);this.snake=snake;this.food=food;this.ground=ground;this.repaint();}protectedvoidpaintComponent(Graphicsg){g.setColor(newColor(0xcfcfcf));g.fillRect(0,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;privatefinalJButtonbutton_start=newJButton(开始游戏);privatefinalJButtonbutton_wait=newJButton(暂停游戏);privatefinalJButtonbutton_stop=newJButton(停止游戏);privatefinalJLabellabel_tips=newJLabel(方向键控制蛇的移动);publicGameOptionPanel(){计算机科学与技术专业2012级《综合课程设计》报告-11-super();setLayout(null);setFocusable(false);setVisible(true);button_start.setFont(newFont(楷体,Font.PLAIN,17));button_wait.setFont(newFont(楷体,Font.PLAIN,17));button_stop.setFont(newFont(楷体,Font.PLAIN,17));label_tips.setFont(newFont(楷体,Font.PLAIN,25));button_start.setFocusable(false);button_wait.setFocusable(false);button_stop.setFocusable(false);label_tips.setFocusable(false);button_start.setBounds(10,10,110,40);button_wait.setBounds(145,10,110,40);button_stop.setBounds(280,10,110,40);label_tips.setBounds(70,70,300,40);add(button_start);add(button_wait);add(button_stop);add(label_tips);}publicJButtongetStartButton(){returnbutton_start;}publicJButtongetWaitButton(){returnbutton_wait;}publicJButtongetStopButton(){计算机科学与技术专业2012级《综合课程设计》报告-12-returnbutton_stop;}publicJLabelgetTipsLabel(){returnlabel_tips;}2.3蛇的移动publicvoi
本文标题:计算机科学与技术专业《综合课程设计》报告
链接地址:https://www.777doc.com/doc-2043574 .html