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

下载本文档

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

文档简介

1、2048 游戏项目需求分析一、项目概述 2二、需求分析 21 .游戏开发的趋势和特色22 .游戏操作需求 23 .开发环境 3三、概要设计 3四、程序流程图 4五、详细设计 54 .颜色如下: 65 .光标位置等的格式控制 76 .终端控制 7六、游戏运行说明 101.游戏运行流程图 10七、扩展说明 101.扩展功能框图 10精选范本、项目概述2048是一款简单小巧的益智类游戏,挑战您的智力极限,借鉴1024和小 3传奇游戏开发而成,难度相对有所下降,是一款让您根本停不下来的游戏。游戏规则: 滑动屏幕或者方向键来移动小方块, 两个数字一样的小方块相撞时就会相加合成一个方块, 每次操作之后会在

2、空白的方格处随机生成一个2 或 4 的方块,最终得到一个2048 的方块就算胜利了,如果 16 个格子全部填满且无法移动的话 GAMEOVER 。、需求分析1 .游戏开发的趋势和特色Linux 特点就是代码开源。开放的平台使更多的开发者参与到游戏代码的优化和完善当中,一个崭新的游戏也很快走向成熟。随着计算机技术的不断发展, 硬件已经不在是游戏发展的瓶颈。 游戏的规划更加向专业化方向发展。1. 将向网络化方向发展,随着各平台对无线通信网络、 WIFI 网络、蓝牙网络的良好支持,游戏将创新出更好的游戏性和用户本验。网络游戏, 多人游戏, 联机对战等将进一步强化玩家对游戏的粘着度, 并且容易通过对道

3、具等的控制产生营利模式。玩家之间对交互能力的需求也会促成未来的游戏向网络化发展进程的加快。2 .将向休闲化、时间片化方向发展,移动设备的随身性使是休闲小游戏将得到快速的发展。 移动设备对分散时间的利用促进了游戏向时间片化发展, 即一个游戏可以随时开始,随时结束,充分利用用户分散的时间片来运行。所以 2048 这个休闲益智的手机游戏就应运而生,一经发布就占据各大手机游戏下载的排行榜的前列, 这是一款老少皆宜的手机游戏, 在空闲时间你可以拿出手机来玩, 上班、 下班、 坐公交、 等地铁, 你随心随意的快乐玩耍。 它简单易上手,只需滑动手指就可以操作,但却有难精通,要打通关卡却不是一件容易的事情通过

4、 C 语言控制台仿写这个游戏,可以锻炼编程框架思想以及技巧,同时将所学到的数据结构等知识灵活的运用。2.游戏操作需求W 、 X 、 A 、 D 键进行操作;1、可使用鼠标或32、 ESC 退出游戏三、概要设计3.开发环境运行环境:开发环境:编写语言:centos6.2vim 编辑器c 语言1、游戏开始时随机的产生2 个数值为 2/4 的方格,其中 1 个方格置于4个角中的一个位置,另一个方格随机的置于其它位置,其余方格值为0。2、每次移动鼠标或按方向键后,逐行计算移动后的方格值。每行移动的算法是: 先将所有值为 0 的数移至行首。 能后从行尾开始逐一和前一个数比较,如果相等则合并这2 个格子。

5、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' 为字体颜

6、色,编号3037;'B' 为背景色,编号4047。'O' 为特殊意义代码它们的顺序没有关系。m 是标记m 后面不用跟空格,是所定义的彩色字和背景 使用方法一:格式 printf("033 字体颜色 ; 字背景颜色m 输出字符串 0330m" );例子: printf("03331; 47;1mhello world0335mn");说明: 31 是字体的颜色, 47 是字背景颜色, , hello world 是字符串 . ,1m 表示高亮显示,后面的 0335m 是控制码使用方法二:格式 : echo -e "

7、033 字体颜色;字背景颜色;1m 字符串 0330m"例子 : echo -e "03336;41;1m something here 0330m"说明:其中 41 的位置代表底色, 36 的位置是代表字的颜色033 ; m 0330m-这些ascii code是对颜色调用的始末2.字体颜色和背景色字背景颜色范围 : 40-49字颜色 : 30-3940: 黑30: 黑41:红31: 红42:绿32: 绿43:黄33: 黄44:蓝34: 蓝45:紫35: 紫46:深绿36: 深绿47:白色37: 白色3.输由特效格式控制(特殊意义码)=ANSI 控制码的说明=0

8、330m关闭所有属性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.颜色如下:noneblackdark_gray blue="0330m”="0330;30m"="0331

9、;30m"="0330;34m"light_bluegreen="0331;34m"="0330;32m"light_green -= "0331;32m"cyan light_cyan red="0330;36m"="0331;36m"light_red purple="0330;31m"="0331;31m"="0330;35m"light_purple = "0331;35m"br

10、own="0330;33m"精选范本yellow light_gray white="0331;33m"="0330;37m"="0331;37m"5.光标位置等的格式控制033nA光标上移n 行03nB光标下移n 行033nC光标右移n 行033nD光标左移n 行033y;xH 设置光标位置0332J 清屏033K 清除从光标到行尾的内容033s 保存光标位置033u 恢复光标位置033?25l隐藏光标33?25h显示光标代码实例:color.c6.终端控制struct termiosstruct termios

11、 org, new; 终端的状态tcgetattr() 获取状态 org STDIN_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 6527 91 6627 91 6727 91 68终端控制文档说明代码实例

12、termios_control.c7. 数据结构、绘图相关数据结构、数据类型定义 相关头文件定义中游戏状态、按键方向、 4x4 方格数据值(使用二维数据存储)、执行步数、获得分数绘制界面-4x4 方格并显示数据值、执行步数、获得分数根据 color.c , 打印方格及数值, 代码实例 draw.c draw_box()键盘控制数据方块移动绘制图形、方向控制、更新画面代码实例 draw.c main 函数执行流程step 5 位运算-5 :原码10000101反码11111010补码111110119 :0000 1001-5 & 90000 100100000011 300001100 121<<11*2A11<<21*2A21<<31*2A3x = 1100 10100000 00010010 00001110 10101110 1010x = (1<<5) | xx |= (1<<5)0100 00001011 11111010 1010x = x & ( 1<<6)x &= (1<<6)step9:合并算法将一维数组转换为二维RIGHT:对每行处理: i=0; i<4; i+从右边开始计

温馨提示

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

评论

0/150

提交评论