你用一个数组表示一下就行了,有的用2,没有的用0,活动的用1,随便你怎么定义了
把活动的部分移动一格(左右下),有重复的就表示不能插入,再退回去
判断是否满行,你自己看了
把活动的部分移动一格(左右下),有重复的就表示不能插入,再退回去
判断是否满行,你自己看了
解决方案 »
- installshield 如何将指定的文件安装到主安装目录下??
- 用了文档视图框架,就不能象dialog那样直接拖放控件了,必需一个个用代码来创建?
- SOCKET 中 WSAAsyncSelect 的使用问题
- 大家帮忙,自己写的ftpclient的问题
- BITMAP宽度好象不一定要是4的倍数吧。急
- 关于ATL方式下编写dll
- 《Visual C++ .NET技术内幕》(第六版) 中文版出来没有啊?
- 外部调用对dll对话框初始化问题
- 如何让线程终止,不用while等循环检测,各位高手给点建议。
- struct member align 16个字节何时起作用
- 请问PIMAGE_IMPORT_DESCRIPTOR 结构在那个头文件里啊?98下..(在线等待)
- 有关api截获问题
他是把全屏分成所需方块,用一个矩阵表示每个方块的状态(1为有东西,0为没东西)屏幕每发生一次变化就修改一下矩阵,然后扫描整个矩阵:若一行全为1则其上面各行的数值移动下来,这样就完成了消行的工作;方块的下落也类似,只要它下面的位子是0,就可以令其下落。
静态层,就是已经蒂格的那些方块,核心数据用一个mxn的数组来描述,
m和n的具体取值取决于整个游戏画面的大小。
数组元素的类型是bool型,描述方式是:true->有方格,false->为空。一般情况下,两个层同时处于有效状态,但有一个比较特别的瞬间只有静态层:前一个方块落下,后一个方块还没有出现的时候。这个实际往往用于检查可以消去的行,并完成相关的操作。至于具体的算法,我想,逐行检查就可以了,事实也证明,其时间复杂度时可以接受的。活动层移动一般是按下列顺序进行:1、调用方法bValidMovement参数包括两层的描述和活动层的移动方向。2、若是合法移动,则修改活动层的位置,做相关的处理,转入下一循环;若不合法,则直接转入下一循环。我不清楚你想用SA方法还是OO方法来架构程序。所以只能先说这么多了。