我也想写一个,目前卡住了,可能因为知识不够吧,我把我的想法说一下:
总体使用数组(二维)来输出假设是a[m][n]
方块函数是整数数组(二维),记录坐标
衔接:方块记录的坐标赋值‘*’
输出函数是字符数组(二维)
输出:把字符数组按行列输出
1:循环展示:目的是为了图片呈现运动状态,并使用system()清屏,也就是每有·下一部动作,清除屏幕重新实现
2:获取随机方块:俄罗斯方块为的就是随机性,获取1·n随机数,赋值给switch,在switch里面调用生成方块的函数
3:运动:查找上下左右箭头的Key_值,同样赋值给switch,在switch里面使用改变方块的函数
4;范围:二维数组的a[0][]以及a[m-1][]一整行都是边界,还有每一行的第一列,以及每一行的最后一列元素也是边界,我是用的*做边界元素,同时*也是方块的元素
6:旋转,在纸上画出方块,赋予每个正方形一个字母,画出翻转后的样子,对照着刚刚的划分,把反转的公式写下(行-1,列+1之类的),然后写出反转函数,用switch调用
5:判断依据:a[n][0]==a[n][1]……='*',然后把这一行删除,上一行剪切到下一行,完成平移
7:积分:每生成一个随机方块,+1分,删除一行+10分
目前来说,我遇到了一个难题:
如何让数组自己变化,并且可以在自己变化的时候把自己的运动、变换指令输进去,不妨碍本身运动的情况下发生改变
以及更快的处理速度
还有就是我用C++,