C语言游戏开发_2048_设计说明书_第1页
C语言游戏开发_2048_设计说明书_第2页
C语言游戏开发_2048_设计说明书_第3页
C语言游戏开发_2048_设计说明书_第4页
C语言游戏开发_2048_设计说明书_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

.2048游戏项目需求分析一、项目概述2二、需求分析21.游戏开发的趋势和特色22.游戏操作需求23.开发环境3三、概要设计3四、程序流程图4五、详细设计53.颜色如下:54.光标位置等的格式控制65.终端控制7六、游戏运行说明101.游戏运行流程图10七、扩展说明101.扩展功能框图10精选范本一、项目概述2048是一款简单小巧的益智类游戏,挑战您的智力极限,借鉴1024和小3传奇游戏开发而成,难度相对有所下降,是一款让您根本停不下来的游戏。游戏规则:滑动屏幕或者方向键来移动小方块,两个数字一样的小方块相撞时就会相加合成一个方块,每次操作之后会在空白的方格处随机生成一个2或4的方块,最终得到一个2048的方块就算胜利了,如果16个格子全部填满且无法移动的话GAMEOVER。二、需求分析1.游戏开发的趋势和特色Linux特点就是代码开源。开放的平台使更多的开发者参与到游戏代码的优化和完善当中,一个崭新的游戏也很快走向成熟。随着计算机技术的不断发展,硬件已经不在是游戏发展的瓶颈。游戏的规划更加向专业化方向发展。1.将向网络化方向发展,随着各平台对无线通信网络、WIFI网络、蓝牙网络的良好支持,游戏将创新出更好的游戏性和用户本验。网络游戏,多人游戏,联机对战等将进一步强化玩家对游戏的粘着度,并且容易通过对道具等的控制产生营利模式。玩家之间对交互能力的需求也会促成未来的游戏向网络化发展进程的加快。2.将向休闲化、时间片化方向发展,移动设备的随身性使是休闲小游戏将得到快速的发展。移动设备对分散时间的利用促进了游戏向时间片化发展,即一个游戏可以随时开始,随时结束,充分利用用户分散的时间片来运行。 所以2048这个休闲益智的手机游戏就应运而生,一经发布就占据各大手机游戏下载的排行榜的前列,这是一款老少皆宜的手机游戏,在空闲时间你可以拿出手机来玩,上班、下班、坐公交、等地铁,你随心随意的快乐玩耍。它简单易上手,只需滑动手指就可以操作,但却有难精通,要打通关卡却不是一件容易的事情通过C语言控制台仿写这个游戏,可以锻炼编程框架思想以及技巧,同时将所学到的数据结构等知识灵活的运用。2.游戏操作需求1、可使用鼠标或、或W、X、A、D键进行操作;2、ESC 退出游戏3.开发环境运行环境:centos6.2开发环境:vim编辑器编写语言:c语言三、概要设计1、游戏开始时随机的产生2个数值为2/4的方格,其中1个方格置于4个角中的一个位置, 另一个方格随机的置于其它位置,其余方格值为0。2、每次移动鼠标或按方向键后,逐行计算移动后的方格值。每行移动的算法是:先将所有值为0的数移至行首。能后从行尾开始逐一和前一个数比较,如果相等则合并这2个格子。3、每合并一次格子,将其值累计到游戏总分中。4、一次移动结束后,在所有值为0的方格中随机的分配一个2/4的值。5、所有方格值不为0且上下、左右相邻的方格都不相等,则游戏结束。6、2出现的概率为90%,4出现的概率为为10%。四、程序流程图五、详细设计1.控制Linux终端打印字符颜色和位置Linux 终端控制台字体颜色,用到一个 转义序列eF;B;Ome 转义字符开始,ESC 的 ASCII 码用十进制表示就是 27,等于用八进制表示的 033。e 或 033 声明了转义序列的开始(经过测试,F、B的顺序可以互换,也可省略) 开始定义颜色。 F 为字体颜色,编号3037;B 为背景色,编号4047。O 为特殊意义代码它们的顺序没有关系。m 是标记m 后面不用跟空格,是所定义的彩色字和背景使用方法一:格式 printf(033字体颜色; 字背景颜色m输出字符串0330m );例子:printf(03331; 47;1mhello world0335mn);说明:31是字体的颜色,47是字背景颜色, , hello world是字符串. ,1m表示高亮显示,后面的0335m是控制码使用方法二:格式: echo -e 033字体颜色;字背景颜色;1m字符串0330m例子: echo -e 03336;41;1m something here 0330m说明:其中41的位置代表底色, 36的位置是代表字的颜色033 ; m 0330m -这些ascii code是对颜色调用的始末.2.字体颜色和背景色字背景颜色范围: 40-49 字颜色: 30-39 40: 黑 30: 黑 41:红 31: 红 42:绿 32: 绿 43:黄 33: 黄 44:蓝 34: 蓝 45:紫 35: 紫 46:深绿 36: 深绿 47:白色 37: 白色3.输出特效格式控制(特殊意义码)=ANSI控制码的说明=0330m 关闭所有属性0331m 设置高亮度0334m 下划线0335m 闪烁0337m 反显,反白显示0338m 消隐,不可见03330m - 03337m 设置前景色03340m - 03347m 设置背景色033nA 光标上移n行033nB 光标下移n行033nC 光标右移n行033nD 光标左移n行033y;xH设置光标位置0332J 清屏033K 清除从光标到行尾的内容033s 保存光标位置033u 恢复光标位置033?25l 隐藏光标033?25h 显示光标4.颜色如下:none = 0330mblack = 0330;30mdark_gray = 0331;30mblue = 0330;34mlight_blue = 0331;34mgreen = 0330;32mlight_green -= 0331;32mcyan = 0330;36mlight_cyan = 0331;36mred = 0330;31mlight_red = 0331;31mpurple = 0330;35mlight_purple = 0331;35mbrown = 0330;33myellow = 0331;33mlight_gray = 0330;37mwhite = 0331;37m5.光标位置等的格式控制033nA 光标上移n行 03nB 光标下移n行 033nC 光标右移n行 033nD 光标左移n行 033y;xH设置光标位置 0332J 清屏 033K 清除从光标到行尾的内容 033s 保存光标位置 033u 恢复光标位置 033?25l 隐藏光标 33?25h 显示光标代码实例:color.c6.终端控制 struct termiosstruct termios org, new; 终端的状态tcgetattr() 获取状态orgSTDIN_FILENO : 终端相关宏memcpy() 内存拷贝函数struct stu a,b;a = b; xxxxxmemcpy(&a, &b, sizeof(struct stu);24 行 , &= 位运算设置终端新的状态tcsetattr(new_opts),修改当前状态c=getchar();tcsetattr(old_opts), 恢复之前的状态键盘输入-方向键-由三个字符表示:上: 27 91 65下: 27 91 66右: 27 91 67左: 27 91 68终端控制文档说明代码实例 termios_control.c 7. 数据结构、绘图相关数据结构、数据类型定义 相关头文件定义中游戏状态、按键方向、4x4方格数据值(使用二维数据存储)、执行步数、获得分数绘制界面-4x4方格并显示数据值、执行步数、获得分数根据color.c , 打印方格及数值, 代码实例 draw.c draw_box()键盘控制数据方块移动绘制图形、方向控制、更新画面代码实例 draw.c main函数执行流程step 5 位运算-5 : 原码1000 0101反码 1111 1010补码 1111 10119 :0000 1001-5 & 9 0000 1001 00000011 3 00001100 12 11 1 * 2112 1 * 2213 1 * 23x = 1100 1010 0000 0001 0010 0000 1110 1010 1110 1010 x = (15) | xx |= (15)0100 00001011 11111010 1010x = x & ( 16)x &= (16)step9:合并算法将一维数组转换为二维RIGHT:对每行处理:i=0; i4; i+从右边开始计算,j=3 , 用于从右到左循环

温馨提示

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

评论

0/150

提交评论