PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 53|回复: 0

[三菱] 三菱 俄罗斯方块程序 含详细思路【转发】

[复制链接]
发表于 6 天前 | 显示全部楼层 |阅读模式

转发一个大神写的俄罗斯方块程序,没有验证,对错,应该可以。
上午没事,写了个俄罗斯方块程序。




  



因为用的是16位指令,最大列可以是(16-2)14列,当前程序用的是12列,各位可以自己改成14列,也可以用32位指令改成更多列的,改变行数就不用说了
基本图形用的是4点的,可以换成5点的(游戏难度更高)

程序详解
P0  7种基本图形4个方向,7*4=28个数据  D1000-D1027
P2  边界检测用数据 D1100-D1128[背景图形]
生成   110000000011
        110000000011
……
        110000000011
        111111111111
        111111111111
P1 根据D0 D1 D2生成图形  存在D100-D103数组里
D0 1-7种基本图形
D1 1-4种方向
D2 指定图形所在的列
P3 碰撞检测
    [背景图形] + [动态图形]     =0?   不等于0说明碰到边界
    [当前图形] + [动态图形]     =0?   不等于0说明与当前图形有干涉
    都为0 输出M1
P4 图形移动
    调用P1
    将D100-D103放入  [动态图形]  中(D3指定行)
    调用P3 进行     碰撞检测
    未碰撞更新位置  D10 D11 D12 D13
P5 消行得分
    [当前图形]  D1200-D1231
    逐字(行)检测  =001111111100 时 前面所有字左移一位    (下降了一行)
P6 画面显示
    [当前图形]  OR  [动态图形]  =  [显示图形]
    D1600是人机上的点,用作显示
P7 随机数产生图形
    随机产生 1-7  1-4 两组数据,并初始行,列  [D20,D21,D22,D23] 下次下落方块数组
    调用P1 生成 下一个图形    [D1632,D1633,D1634,D1635]  用于人机显示
P8 下一个方块下落
    将下次下落方块数组  放入   当前方块数组  [D10,D11,D12,D13]
    调用P1 合成图形 用于人机显示

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-9-20 00:28 , Processed in 0.048624 second(s), 28 queries .

快速回复 返回顶部 返回列表