俄罗斯方块课程设计报告

俄罗斯方块课程设计报告

ID:11932185

大小:152.00 KB

页数:5页

时间:2018-07-15

俄罗斯方块课程设计报告_第1页
俄罗斯方块课程设计报告_第2页
俄罗斯方块课程设计报告_第3页
俄罗斯方块课程设计报告_第4页
俄罗斯方块课程设计报告_第5页
资源描述:

《俄罗斯方块课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、俄罗斯方块课程设计报告              龙元维          一问题的分析关于俄罗斯方块程序的一些问题(以及我写的游戏是否解决这些问题):怎么样设置图形显示?(运用解决EasyX,但方块之间的变色未解决)常用图形函数的用法?(运用EasyX_Help.chm)怎样获取鍵盘输入?怎样控制方块的移动?怎样控制时间间隔(用于游戏中控制形状的下落)?游戏中的各种形状及整个游戏空间怎么用数据表示?游戏中怎么判断左右及向下移动的可能性?游戏中怎么判断某一形状旋转的可能性?按向下方向键时加速某一形状下落速度的处理?怎么判断某一形状已经到底?怎么判断某一已经被填满?(以上基本解

2、决)怎么消去已经被填满的一行?怎么消去某一形状落到底后能够消去的所有的行?(以上二个问题,玩的过程会发现有点问题,希望有人能帮我改过来)怎样修改游戏板的状态?怎样统计分数?怎样处理升级后的加速问题?怎样判断游戏结束?关于计分板设计的问题。关于“下一个”形状取法的问题。最高记录的显示。实现一个进度存储功能(以上能解决)二、设计理念其中数显关系为重点难点!其次控制平台的的构建要先做。(后面的每一个函数的测试多要用到)结构关系如下:三、函数调用关系如下:数据说明;Board[22][13];为游戏版面上已经固定的方块,数据1为有固定的方块。以下数据为开始新游戏版面上的数据(其中上面

3、的1为边,可通过运行“读取上次游戏数据.c”查看,但得先保存游戏)111111111111110000000000011000000000001100000000000110000000000011000000000001100000000000110000000000011000000000001100000000000110000000000011000000000001100000000000110000000000011000000000001100000000000110000000000011000000000001100000000000110000000000

4、0110000000000011111111111111结构体ID,XY分别表示相对坐标和颜色(color我没用上,绘制不同颜色的方块有点麻烦)XY表示实际坐标和方向DRAW用于显示方块和隐藏方块函数说明:DrawBlocks();DrawBlock();为由数据绘制方块其函数思想:将相对坐标放大Size=30倍加实际坐标后用bar3d()绘制Init();绘界面NewBlock();随机生成方块,其中调用了DrawBlock()DesignBlock()用于设计方块,我的设计方法如下:①(0,1)②(0,0)以右上角为参考点③(1,0)④(1,1)其它的类似。以上均为绘图和

5、界面的底层函数Confilict()用于检查相应的运动是否可是现,即检查被控制的方块是否与以固定的方块或界面边界发生碰撞,为一重要底层函数,将会被每一个动作函数调用。Fix()为沉底后的固定,其实就是把坐标版面上相应坐标的数据赋值为1。以下为需要消行时的函数:JudgeDisappear()判断是否需要消行,要消行则调用Disappear()和Flicker()(这个函数未能实现)Flicker()Disappear()消掉某一行容易,但该行以上的方块的下移以及移动后坐标版面上相应坐标的数据得赋值为0,于是写了一个PrintBlock()以调用的它实现消行后的处理PrintB

6、lock()将Board[22][13]中值为1,即有方块的位置的方块显示出来,用于消行后的处理和恢复上次游戏的状态以上为控制的底层函数OnLeft()、OnRight()为左右移动要调用Confilict()检查移动的可以性OnRotate()为变换方块有点复杂,主要是因为关系到相对坐标的变换OnDown()方块下移同样调用Confilict()但不同的是不能下移时得调用Sinkback()来处理。OnSink()使方块迅速沉底与OnDown类似Sinkback()这个函数是调用函数最的函数,关系到沉底后的各种处理。以上为控制的关键函数GameOver()为游戏的结束与重新

7、开始,里面的语句是全是参考别人的。Save()用于游戏中途结束的,保存游戏。运用的文件的操作,保存里游戏版面和方块位置与形状而Continue()则主要是问游戏者是开始上次游戏呢,还是重新开始四、心得主要有两点:一、对于复杂的问题学会从全局思考,分解问题并将模块化、画出结构图、设置好变量、留足修改与增添的空间、设计好测试的平台。其次写一个函数就测试一个函数可很好的解决程序改错的问题、联系自己曾今已解决的问题可减少在去写类似函数的工作量二、通过这次的课程设计不说可将C语言融会贯通,至少可熟练C语言!

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。