软件工程实习报告_第1页
软件工程实习报告_第2页
软件工程实习报告_第3页
软件工程实习报告_第4页
软件工程实习报告_第5页
免费预览已结束,剩余7页可下载查看

下载本文档

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

文档简介

1、软件工程实习报告中国石油大学(华东)计通学院软件编程实践实习报告题目我的“ 2048”学号姓名认知实习 成绩编程实习 成绩总成绩1407030108刘聪1407030106贾如举1407030117王悦1407030119吴宇铖评语20152015 年 7 7 月软件工程实习报告、题目介绍(包括:题目背景简介、系统达到目标等)2048是一款比较流行的数字游戏,最早于2014 年 3 月 20 日发行。原版2048 首先在 GitHub 上发布,原作者是 Gabriele Cirulli,后被移植到各个平台。这款游戏是基于1024和小 3 传奇的玩法开发而成的新型数字游戏。HlbNYo2014

2、年 Gabriele Cirulli利用周末的时间写 2048 这个游戏的程序,仅仅只是好玩而已。他想用一种不同的视觉展现效果和更快速的动画来创造属于我自 己的游戏版本Ohl6 P。AsherVollmer 和 GregWohIwenc 作为 Threes 的开发者,他们在开发这款游戏的时候投入了大量的时间和精力。在制作2048 的过程中,他决定把项目托管到Github 上去,并且通过 Github 完成项目。完成了这个游戏之后,通过 GithubPages 发布,并发表在 DesignerNews 上。由于本人十分喜欢2048这款手游,在了解 了本次课程设计是设计一个 QT 平台下的软件之后

3、,就选定了2048作为本次课程论文的课题。在此次课程开题报告的制作过程中,我们研究小组将运用学习到的知识以及 C+编程知识通过网上现有的资料尝试完成此次课程的开发。t2tZR。此次,本研究小组决定在2048原有的基础上进行界面等设计修改,希望给人焕然一新的感觉,能够给人新有的感觉,在功能上进行设计,使其具有独 特的功能。XSawe二、主要内容(详细介绍系统总体功能、模块划分,以及每个模块的具体实现)系统化具体功能:有 16 个格子,初始时会有两个格子上安放了两个数字 2, 每次可以选择上下左右其中一个方向去滑动,每滑动一次,所有的数字方块都会 往滑动的方向靠拢外,系统也会在空白的地方随即出现一

4、个数字方块,相同数字ioad2。的方块在靠拢、相撞时会相加。不断的叠加最终拼凑出 2048 这个数字就算成功。2048中每个格子的数据和颜色的都在不断地刷新,在每一次移动之后,几乎Ulcob。软件工程实习报告在这 4*4 的每一个方格上的数据都会变化,因此在每一次移动之后,每一个方格 上的数据都要刷新一次。相对的,每一个数的背景颜色是不同的,也就是说,在 每一次数据刷新的时候,每一个方格上的颜色也要同样的刷新一次。当屏幕上没 有没有写有数据的方格并且屏幕上的数据没有哪两个相邻的数据是一样的两个 数,那么就判定为游戏结束。游戏所产生的分数将被记录下来,如果此分数超过 以前的最高分数,此分数会将其

5、取代,成为最高分“ High score ”。vjPvt。模块划分:1)主界面的设计。提供用户更多的选择,游戏分为鼠标板和键盘版两种,用户可随意自由选择自己喜欢的玩法。hID1V。2)分数计算。在移动方向将相邻的 2 个数相加;。3)移动控制。控制分为两种方式,一种为鼠标控制,一种为键盘控制,用户可根据自己喜好,自由选择自己喜欢的玩法。鼠标板:用户可在 4X4 界面按 住鼠标左键进行上下左右移动控制。键盘版:分为上下左右四种移动方式,通过 键盘上的 W A、S、D 或者TJ-控制。6TFf7。4)移动前后数组数值的改变。 通过重新创建数组, 将移动后的数值填入、并用 0 将数组补成 4X4 的

6、数组,来实现移动前后数值的改变。游戏结束后,一旦 此次分数超过之前的最高分数,此分数将会取代其成为最高分。一直到下一个最 高分将其取代为止。k5ffU5) 利用概率随机数来实现 2 和 4 的生成。6) 成功与失败的判断等。) 当游戏结束时,能够询问用户是否重新开始。游戏技巧:最大数尽可能放在角落。数字按顺序紧邻排列。首先满足最大数和次大数在的那一列 / 行是满的。软件工程实习报告时刻注意活动较大数(32 以上)旁边要有相近的数。7lqro以大数所在的一行为主要移动方向不要急于“清理桌面”。三、开发团队学号姓名职责详细任务1407030108刘聪界面设计、部分 代码研究富有创意的设计程序的界面

7、,给人以独特的感觉。同时大部分时间协助贾如举 修改代码。1407030106贾如举主要代码研究通过上网查阅资料,学习,研 究代码的作用,使其应用到程 序中,并对代码进行了大量的 修改。1407030117王悦部分代码探究、实习报告书写实习报告,通过刘聪与贾 如举的反馈将其记录于报告 中。同时协助贾如举修改代 码。完成代码等研究。1407030119吴宇铖游戏测试测试游戏是否符合预期的标 准,寻找其中的 bug四、技术总结1.( 1 1)“我的 20482048”游戏程序流程图5)软件工程实习报告(2(2)游戏界面整体流程图软件工程实习报告2.主要技术:工希面,主要技术包括界面设计,界面转换,鼠

8、标、键盘控制事件,页面布局,方块的大小和颜色设定,游戏的组合,信号与槽的应用等一系列问题NjHNd3.遇到的技术问题及解决方法:1)代码错误:网上的教程虽然很全,但是按照教程所建立的工程,以及添加所需的每个类和每个文件,把代码写上之后发现了很多错误,这些错误有些是能解决,OIP C7。而大多数并不能解决,真的令我们很头疼。解决方案:经过组员的不懈努力,以及上网查资料、请教同学和老师,终于逐渐的解决了一个个的大问题,程序终于可以运行,但是距离成功还是很遥远,因为这只是刚刚构建好,好多功能还没有实现,但我们的基础工作己经做好。uQnvf。2)界面的转换:我们之前并不知道该怎么在点击一个按钮的时候关

9、掉当前界面同时开启另一个界面,这也是个很大的问题,因为界面不转换,我们的所有功能将无法实现。1t7KB。解决方案:负责界面设计的刘聪同学运行了几个其他的程序,从其他程序中研究代码,寻找转化界面的方法,并请教了本班同学麻宝鑫,终于不负众望,解决了这个重大的问题,使程序可以运行下去。此问题的解决刘聪同学功不可没,同时感谢麻宝鑫同学的鼎力相助。QKbEI3)颜色的设定:为了让游戏界面看起来不是那么单调,于是我们想让方块再出现 不同数字时显示不同的数字。这个功能对于程序的影响不大,只不过是令游戏更软件工程实习报告软件工程实习报告美观而已。但要想实现这个功能,难度还是很大的对于小组成员来说,因为我们自大

10、一开始学习的 c 语言以及 C+都没有学到关于颜色的设定,组内成员一度想放弃这个功能,但是负责代码编写的贾如举并没有放弃。9vhjO。解决方案:经过大量的程序研究,再加上从论坛、贴吧、qq 群查询到的资料,终于找到了是添加颜色的方案,以及方块数字变化时颜色的改变,然而这距离预4)程序的整合,我们的“ 2048”分为键盘版和鼠标版两种,看似一个游戏,其实 是两个不同的游戏整合到一起,但大部分功能的实现还是一样的,只有键盘控制 和鼠标控制这部分的设计是不同的。想要一同实现这两个功能,需要把两个工程整合到一起。刚开始我们认为本来很容易就能整合到一起,但事实并非如此。整 合到一起以后,代码出现大量错误

11、。解决方案:经过对错误代码的研究,发现错误的原因是很多变量定义重复,因 此经过修改,将重复代码改正。解决了大量问题以后,程序终于可以运行。(附游戏界面图片一张)4.关键代码: 1)鼠标控制游戏所需代码:void GameWidget:mouseReleaseEve nt(QMouseEve nt *e)/如果在播放动画效果则直接退出防止重复产生手势事件 if (isA ni mat ing)期的结果还有很大的差距。我们在一直改进MhQ27UyVvl软件工程实习报告return;/根据终点坐标和起点坐标计算 XY 坐标的增量 float dX = (float)(e-pos().x() - st

12、art Pos.x();float dY = (float)(e- pos().y() - start Pos.y();/确定手势方向 if (abs(dX) abs(dY)if (dX 0)emit GestureMove(LEFT);elseemit GestureMove(RIGHT);elseif (dY 0)emit GestureMove(U P);elseemit GestureMove(DOWN);2)判断游戏是否胜利:bool GameWidget:checkWi n()/循环检测是否某个方格的数字为2048 for (i nt i = 0; i 4; i+)for (i n

13、t j = 0; j 4; j+)if (boardij = 2048)软件工程实习报告return true;return false;3)存贮每个数字对应的颜色:/颜色数组存储每个数字对应的背景色0 x33),lRite。QColor:fromRgb(0 xFF, 0 x00, 0 x00);五、心得体会转眼间几天实习已经过去,虽然倍感折磨,但是收获却是很大的。“纸上得来终觉浅,绝知此事要躬行! ”通过实训,我们都有这样一个感觉, 所学的理论知识与现实差距太大,深深的体会到了自己在编程方面的欠缺和不足, 也意识到了我们作为一名软件工程专业的学生,要想在以后的职业中崭露头角, 除了要有过硬的

14、理论知识,健康的体魄之外,还必须具备良好的心理素质,是自QColor digitBkg11QColor:fromRgb(OxFF,OxFF,0 xCC),QColor:fromRgb(0 xFF,0 xFF,0 x99),4zpAT。QColor:fromRgb(0 xFF,0 xCC,0 xCC),QColor:fromRgb(0 xFF,0 xCC,0 x99),InsJg。QColor:fromRgb(0 xFF,0 x99,0 x99),QColor:fromRgb(0 xFF,0 x99,0 x66),0vDlc。QColor:fromRgb(0 xFF,0 x66,0 x66),Q

15、Color:fromRgb(0 xCC,0 x99,0 x66) ,hbuOEQColor:fromRgb(0 xCC,0 x33,0 x33),QColor:fromRgb(0 xCC,0 x00,软件工程实习报告己在以后的途中无论经历什么样的困难,都立于不败之地。通过实训老师的课堂 讲解与企业文化标准的培训,使我们加深了对自己专业的认识。4C5XU。这次实习让我们深深体会到一个团队中的各个成员合作的重要性,要善于团 队合作,善于利用别人的智慧,这才是大智慧。靠单一的力量是很难完成一个大项目的,在进行团队合作的时候,还要耐心听取每一个成员的意见,积极参与到 团队合作中去,这样会有意想不到的惊

16、喜。7zaT8o这次实习让我们学到很多东西,不仅在理论上让我们对编程有了全新的认识, 让我明白工作中需要能力,素质,知识之外,更重要的是学会了如何去完成一个 任务,懂得了享受工作。在实践能力上也得到了很大的提高,真正做到了学以致 用,对我们来说受益匪浅。更让我们真切的体会到作为一名未来程序员到所需要 的素质:耐心,勤思好问,享受 团队不断努力的乐趣,学以致用。当遇到问题, 冷静,想办法一点一点的排除障碍,到最后获取成功,一种自信心就由然而生, 这应该就是工作的乐趣。有时候不懂的就需要问别人了,虚心请教,从别人的身 上真的能学到自己没有的东西,每一次的挫折都会使我更接近成功。还有学会了 在工作中

17、与人的合作与交流,同乐同累,合作互助,这是团体的精神,也是必须 学习的东西。WJA8g我们深刻的认识到要成为一名优秀的软件开发人员不是一件容易的事情。想成为一个合格的程序员就有具备一种自学能力,在工作中会遇到很多从未接触 过的问题,当有了问题时要去解决,在你不断努力,寻找答案的过程中,自己的 能力也在潜移默化的提升。有时遇到问题时可能有很多想法但却不知道那个正确, 这就需要我们不断地去探索,不断地尝试。TU5Cg除此之外,从一起做项目的同学身上我看到了谦虚谨慎、细心努力的态度,从他们身上找寻我所缺少的品质,不断学习。从老师那里我看到了企业人的生活面 貌,没有事情可以不劳而获,今天老师们能够领导我们是他们之前努力的结果, 虽然老师没有和我们讲很多公司里的事情,可是他们的言行中所表现出来的都是 比我们要严谨的多的对工作的态度。MCzlSo实习中学到了 QT 编程的知识,我们小组所做的“我的 2048”小游戏,把学到的知识运用到具体实践中,不仅加深我们对理论的掌握和运用,真正地做到了 学以致用,还让我们拥有一次又一次的难忘团队开发经历,这也是实训最大的收 获。tiREO。通过实训,我们都有这样一个感觉,所学的理论知识与现实差距太大,实训,开阔了我们的视野,同时也锻炼了我们踏实、稳重的能力,每个人都很珍惜这次 实训。Pnjis。在匆匆过

温馨提示

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

评论

0/150

提交评论