您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 手机/mobile开发 > 游戏开发 2048 设计说明书
游戏开发设计说明书题目2048学号2011115010809学生姓名董涛指导教师谢逸所在班级计科1108班专业名称计算机科学与技术目录游戏开发课程设计...........................................................................................................................1目录...........................................................................................................................................2一.课程设计主要内容...................................................................................................31.题目...........................................................................................................................32.需求分析...................................................................................................................33.设计环境...................................................................................................................3二.详细设计说明...........................................................................................................41.系统程序流程图.......................................................................................................42.系统概要说明...........................................................................................................53.功能说明...................................................................................................................54.系统各类的知识点说明...........................................................................................55.主要算法设计...........................................................................................................6三.游戏运行说明.........................................................................................................101.游戏运行流程图..........................................................................................................101.游戏开始.................................................................................................................112.游戏进行.................................................................................................................123.游戏结束.................................................................................................................12四.课程设计总结.........................................................................................................13一.课程设计主要内容1.题目20482.需求分析游戏操作需求:1、可使用鼠标或↑、↓、→、←或W、X、A、D键进行操作;2、Play按钮重新开始游戏;3、Undo按钮取消本次操作,回到上一步。2048游戏算法1、游戏开始时随机的产生2个数值为2/4的方格,其中1个方格置于4个角中的一个位置,另一个方格随机的置于其它位置,其余方格值为0。2、每次移动鼠标或按方向键后,逐行计算移动后的方格值。每行移动的算法是:先将所有值为0的数移至行首。能后从行尾开始逐一和前一个数比较,如果相等则合并这2个格子。3、每合并一次格子,将其值累计到游戏总分中。4、一次移动结束后,在所有值为0的方格中随机的分配一个2/4的值。5、所有方格值不为0且上下、左右相邻的方格都不相等,则游戏结束。6、2出现的概率为90%,4出现的概率为为10%。3.设计环境运行环境:windowsxp,windows2003windows7开发环境:MicrosoftVisualStudio2010编写语言:c#二.详细设计说明1.系统程序流程图开始随机产生两个方块键盘控制移动方块移动方向最底部方块是否有方块N原来位置方块清除方块移到底部Y结束游戏Y数字是否相等YNN上一格方块数字是否相等两方块数字相加把上面的行数据下移并置Y方块是否能够移动NY2.系统概要说明本程序是在VS2010环境下编写的Windows应用程序,函数中利用了画图函数绘制基本方块模型,并通过键盘或鼠标执行相应的操作。在产生的方块中,调用随机方法,随机产生1~100中的任何一个数字,数字小于90,方块显示数字为2,否则显示为4,每一,通过这种方式,实现了游戏中其中不同模块的数字的随机产生。3.功能说明(1)实现可以显示2或者4两张数字的方块(2)实现各个方块的上下左右移动(3)实现方块间数字判断与相加4.系统各类的知识点说明1.主类Main()方法主函数调用主要功能的三个方法,实现程序运行。2.Cube类(画单元格)Cube类的功能定义了单个方块的构架。此类中,定义了不同的数字显示所显示的不同的单元格方块,使方块相加变化明显。此类中定义了属性currValue//当前得分以及方法Cube_Paint()方块的绘制,此方法针对可能出现的12中数字显示,运用Graphics类,画出不同的显示的方块3.forms类(方块的控制)此类主要实现对方块的控制,实现每种不同操作的实现此类创建了四个属性privateCube[]cubes=newCube[16];//创建个个cubes类的数组,实现游戏方块的创建enumMoveDict{Up,Down,Left,Right};//定义枚举类型,键盘控制方向,上下左右privateintx1,y1;//鼠标位置privateintscore=0;//房钱成绩privateint[]prev=newint[17];/./上一步方格值和积分Form1()方法:构造方法,实现方块的实例化创建start()方法:游戏的初始化,实现最开始两个方块的摆放。SavePrevVaule()方法:保存每上一步的方块值以及成绩,实现撤销一次的操作LoadPrevValue()方法:加载上一步值,当进行撤销操作时,调用该方法。OneMove()方法:实现移动一次的操作。此方法调用MoveLine()进行累加,实现成绩的相加MoveLine()方法:移动一行的方法getNextCube()方法:取下一个方块CanMove()方法:通过方块是否能够移动,判断游戏是由结束pictureBox1_MouseDown()方法:获取鼠标移动的位置getDirection()方法:通过鼠标坐标判断方块的移动方向Form1_KeyUp()方法:接受键盘信息,判断方块移动方向btnPlay_Click()方法:“开始”按钮的单击事件,调用start()方法,开始游戏btnUndo_Click()方法:“撤销”按钮的单机事件,调用LoadPrevValue()方法,进行撤销操作5.主要算法设计1.方块值的随机数产生System.Randomr=newRandom();intn1=r.Next(1,100);cubes[0].Value=(n190?2:4);通过Random类产生100以内的随机数,数字大于90,方块值为4;小于90,方块值为22.游戏初始化两个随机方格位置的摆放System.Randomr=newRandom();intc1=r.Next(1,4);intc2=c1;doc2=r.Next(1,16);while(c2==c1);for(inti=0;i16;i++)cubes[i].Value=0;intn1=r.Next(1,100);intn2=r.Next(1,100);switch(c1){case1:cubes[0].Value=(n190?2:4);break;case2:cubes[3].Value=(n190?2:4);break;case3:cubes[12].Value=(n190?2:4);break;case4:cubes[15].Value=(n190?2:4);break;}cubes[c2-1].Value=(n290?2:4);四个角随机摆放一个方格,其他位置随机摆放,位置重叠,再随机产生一个3.保存上一步值的算法实现privateint[]prev=newint[17];//定义一个数组记录值for(inti=0;i16;i++)prev[i]=cubes[i].Value;//数组前16个元素保存,16个方块的值prev[16]=score;//数组最后一个元素保存当前成绩值4.方块移动一次的算法实现每移动一次,要加载得分,并是先移动后方块的位置摆放以及方块数值的相加及显示privateintMoveLine(Cubecube1,Cubecube2,Cubecube3,Cubecube4){intscore=0;if(cube1.Value==0&&cube2.Value==0&&cube3.Value==0&&cube4.Value==0)return0;Cube[]cubes={cube1,cube2,cube3,cube4};ArrayListiCubes=newArrayList();//判断最低行方块值是否为0,为0即不存在方块,去掉为0的方块for(inti=0;icubes.Length;i++)if(cubes[i].Value!=0){iCubes.Add(cubes[i].Value);}for(inti=0;icubes.Length-iCubes
本文标题:游戏开发 2048 设计说明书
链接地址:https://www.777doc.com/doc-6067883 .html