c语言程序设计俄罗斯方块PPT,C语言实现俄罗斯方块.ppt

C语言实现俄罗斯方块.ppt

C语言实现俄罗斯方块 邓友明 胡文峰 李乐 李博 具体内容 1俄罗斯方块简介. 2功能简介. 3所用知识 4模块分析. 5数据结构. 6算法设计. 一. 俄罗斯方块简介: 二.功能分析: 1具有基本的游戏背景/界面。 2能随机生成所有可能的方块。 3能根据难度确定方块下落速度。 4能用键盘控制方向,变形。 5方块判别停止条件及墙壁。 6能判别消行及游戏结束。 7电脑能自动玩,可以选择人机对抗玩.(难) 8能记录玩者姓名及最佳成绩。 三.所用知识: 基本的C语言知识。 数据结构。 图形交互技术。 算法分析和设计。 数据库知识. 人工智能 四.模块分析 根据七种功能可得到六个模块. 分别为:1.界面; 2.方块; 3.下落及控制; 4.碰壁停止; 5.消行及玩完; 6.电脑判别最优走法(难) 7.记录.(难) 具体见下: 模块1.界面设计 基本符合一般的俄罗斯方块游戏; 我们设计时考虑倒我们屏幕的大小,采用16X24的方格阵.背景用蓝色,墙用红色, 墙内用白色. 这部分已设计好,看演示! 模块2.定义所有方块 所有俄罗斯方块都是有四个方格,所有可能情况有二十种(由于方块所占比率太小,有两!颜色随机!) 具体如下:0. 1. 2. 3. 4 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 上述二十种方块中,0号1号可循环变形;2,3 号相同;4,5,6,7可循环变形;8,9,10,11可循 环变形;12,13,14,15可循环变形;16,17,18,19 可循环变形. 具体实现见数据结构部分. 此模块已实现,看演示! 模块3.下落及控制 下落比较简单. 即图形的插,写及步长的大小来实现. 插写速度及步长大小可控制难度. 已实现,有演示! 控制也容易. 控制包括控制方向和变形. 变形可由方块定义的号码循环变换. 已部分实现,演示! 但两个嵌套起来就出现了问题(请大家指教): 即控制的时候不要影响下落,但控制时如用到getch()函数,要等待输入字符,因此下落因等待停止!查到一个kbhit()函数虽能在输入字符时不影响下落,但不能返回所输字符!最后用kbhit()判断是否有控制输入,用getch()判断控制操作虽能实现,但反应滞后!!??不完美! 演示之. 模块4.墙和已有方块阻挡的实现 我们讨论得到的一个方案为: 定义界面的时候,墙设为红色(好看起见),空白格为白色.方块为除黑白的其他随机颜色. 定义一个数组m保存界面当前每个方格的坐标及颜色值. 方块下落过程中遇到非白色的就停止.自定义一个stopmove( m,…)判断是否停止. 控制遇到非白色阻挡就失效. 停止的方块替换掉所在位置以前界面数组m的对应颜色.用自定义的getbk()函数返回新的数组m. 这一部分我们正在努力之中!!! 模块5.消行操作及失败判断 消行操作是难点. 首先是判断哪几行已满,然后要将该行以上所有内容整体下移所消的行数.具体算法我们还在研究之中. 失败与否就是判断是否有方块超过界面上界.不难! 模块6.能实现电脑玩 这一部分比较难,我们正在查找相应的书,学习相应的知识. 模块7.玩者姓名及成绩排行榜 分数由所消行数及难度确定. 设计时定义好. 在指定时间之内,或失败后都有一个最终分数.可以选择记录之.这将会被录入对应文件.用到C语言的文件操作. 能够调出排行榜,及最高纪录.用到数据库方面知识,及排序. 这一部分不容易,我们还在思考之中! 五.数据结构 通过以上模块分析,我们已经设计出如下数据结构: 1.点坐标结构: typedef struct{ int x; int y; }Pos; 2.点及颜色数据结构: Typedef struct{ Pos pos; //点坐标 int color; //颜色值 }PosType1; //用于保存界面及其他 3.头节点及方块号码数据结构: typedef struct{ Pos node0; /*int x1;int y1;*/ //方块头节点左

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
/* *游戏说明:此为我边学边做的,但有很多的BUG,参照了我从网上下载的游戏方块设计 * 一、游戏的BUG * 1、提示分数那地方,玩过游戏后,长了分数后,再玩时,后面的数据没清掉 * 2、重级BUG:当在游戏过程中,切换了一个旁边的后,再切换回来后, * 刚才的方块不显了,而且游戏区的数据也不见了。 * 3、我在刚开始做时,没有要窗口上的关闭,现在想要,但不知道怎么加。 * 4、如果用鼠标点了菜单后,再回到游戏区,数据方块又不见了。 * * 二、此游戏没有版权,可以乱改,反正我也是在学习,谢谢那些无私的网友们,不过 * 请你们下次提交上来的源程序有个说明好不好,看得我头都大了,流程图也没得, * 设计说明也没有,完全看源代码,很费力的!谢谢对新人的支持。 * * 三、如果那位高手愿意,请收我为徒弟吧,我学过c/c++、数据结构、编译原理、操作系统等( * 计算机专业的),但对于VC这个大东西来说,,好像一点用也没有,现在在边学边做,门不好入呀! * * 四、请高手们帮帮我,请给分析一下问题在哪,谢谢,我对VC还不是很清楚,在文件目录下 * 有设计时的流程图。设计说明我没有写,我是针对每一个流程图模块来设计和编码的。 * * 五、在游戏中,我加了很多注释,以方便理解,主要的代码都在CChileView.h、CChileView.CPP中 * 我想的是,如果新人也想看看的话,可能理解起来快点。不过有点乱,编码中有些冗余。没来 * 得及改。如果你改好了,请给我一份,我想学学。谢谢! * *================================================================================================ * *编译环境: * 1、操作系统 :WindowsXP SP2 * 2、编译器 :Visual C++ 8.0 * *包含文件:所有源文件都在此。 * * *编译参考:此目录下有一个文件名为:Russia.sln的文件,用Visual C++ 8.0 打开,直接就可编译 * 此游戏是我编译通过后,才压缩的。如果编译不了,请联系我,下面有我的QQ和email。 * * *其它事宜:如果还有什么问题我没有提到的,请联系我,愿向你学习。 * *================================================================================================ * *Version :BUG Edtion * *Aauthor :lin_liu60 * *E-mail :lin_liu60@163.com * *QQ :994165 (网名:刘羽峰) * *Date :2006/9/27 * */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值