俄罗斯方块吧 关注:13,197贴子:70,345
  • 5回复贴,共1

求俄罗斯方块的详细规则

只看楼主收藏回复

自己打算写一个俄罗斯方块,算是看完系统编程后练练手,但是不太清楚详细的规则。
尤其是旋转,一个方块旋转后和旋转前的位置,还有怎样能够旋转,怎样不能旋转这样的规则,还有T旋之类的判定,自己玩游戏观察实在有点困难,能不能给个指南


IP属地:广东1楼2021-02-12 20:46回复
    快来水,快来水


    IP属地:广东2楼2021-02-12 20:47
    回复
      2025-12-31 04:00:39
      广告
      不感兴趣
      开通SVIP免广告
      我也想写一个,目前卡住了,可能因为知识不够吧,我把我的想法说一下:
      总体使用数组(二维)来输出假设是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++,


      IP属地:陕西3楼2021-02-21 12:39
      收起回复


        IP属地:陕西4楼2021-02-21 12:52
        回复