首先我们先贴上代码

bool checkErasing(TetrisManager *manager, TetrisControl *control)
{char count = 0;char k = 0, y = manager->y + 3;  // 从下往上检测do {if (y < ROW_END && manager->pool[y] == 0xFFFFU)  // 有效区域内且一行已填满{++count;// 消除一行方块memmove(manager->pool + 1, manager->pool, sizeof(unsigned short) * y);}else{--y;++k;}} while (y >= manager->y && k < 4);manager->erasedTotal += count;  // 消行总数manager->score += (1*count);if (count > 0){++manager->erasedCount[count - 1];  // 消行}giveTetris(manager);  // 给下一个方块return (count > 0);
}

主要实现的难点在于我们如何判断游戏池中是否为满行,其实就是判断每个格子是否为F,然后对其清除,下面是清除函数

void removeTetris(TetrisManager *manager)
{// 当前方块unsigned short tetris = gs_uTetrisTable[manager->type[0]][manager->orientation[0]];// 当前方块每4位取出,按位取反后位与到游戏池相应位置,即完成移除方块manager->pool[manager->y + 0] &=~(((tetris >> 0x0) & 0x000F) << manager->x);manager->pool[manager->y + 1] &=~(((tetris >> 0x4) & 0x000F) << manager->x);manager->pool[manager->y + 2] &=~(((tetris >> 0x8) & 0x000F) << manager->x);manager->pool[manager->y + 3] &=~(((tetris >> 0xC) & 0x000F) << manager->x);
}

对每个位置进行&清除,由于我们俄罗斯方块是4x4,所以要继续4位往上移。

以下是俄罗斯方块游戏工程的连接:

https://download.csdn.net/download/gaodes/10961687

俄罗斯方块游戏的消行实现相关推荐

  1. 用andengine做一款俄罗斯方块游戏

    andengine 入门 AndEngine初步 作者: Me 日期: 2010/12/16 发表评论 (1)查看评论 AndEngine 是一个Android平台下基于OpenGL ES的免费(LG ...

  2. 回归前端学习第24天-实现俄罗斯方块小游戏7(实现单机版3—实现消行、更新方块、结束)

    更改game.js.local.js. game.js中加入代码 使用下一个方块 设置到底部后,方块定住并换色 实现消行. 游戏结束 最后导出 整体代码 local.js代码 move函数更改 随机生 ...

  3. 回归前端学习第25天-实现俄罗斯方块小游戏8(实现单机版4—设置计时、消行加分、游戏结束标志)

    增改game.js与local.js代码,实现对游戏的设置计时.消行加分.游戏结束标志等环节的设计 计时 计分 游戏结束 完整代码 local.js game.js 注意 计时 1.定义显示时间的di ...

  4. 500行代码写一个俄罗斯方块游戏

    导读:本文我们要制作一个俄罗斯方块游戏. 01 俄罗斯方块 Tetris 俄罗斯方块游戏是世界上最流行的游戏之一.是由一名叫Alexey Pajitnov的俄罗斯程序员在1985年制作的,从那时起,这 ...

  5. 500 行代码写一个俄罗斯方块游戏

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 导读:本文我们要制作一个俄罗斯方块游戏. 作者 | 派森 ...

  6. 一个简易的游戏代码_500 行代码写一个俄罗斯方块游戏

    01 俄罗斯方块 Tetris 俄罗斯方块游戏是世界上最流行的游戏之一.是由一名叫Alexey Pajitnov的俄罗斯程序员在1985年制作的,从那时起,这个游戏就风靡了各个游戏平台. 俄罗斯方块归 ...

  7. java俄罗斯方块消除算法_Java 俄罗斯方块消行算法

    Java 俄罗斯方块消行算法 2020-08-12 11:02 阅读数 9 /** * 消行得分 */ private int plusExp() { //获取地图信息 boolean[][] gam ...

  8. 500 行代码写一个俄罗斯方块游戏(附源码)

    点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] 导读:本文我们要制作一个俄罗斯方块游戏. 作者 | 派森学python 来源 | https://segmentfault.com/a/1 ...

  9. 俄罗斯方块java消行_Tetris ai 俄罗斯方块自动消行程序

    [实例简介] java实现的简易消行程序,最高分数为1000万,平均能够消行400百万行,将Tetris里的enabledisplay改为true就有图形化界面 [实例截图] [核心代码] Tetri ...

最新文章

  1. 基于Attention机制的轻量级网络架构以及代码实现
  2. Py之utils:utils库的简介、安装、使用方法之详细攻略
  3. CMake 手册详解(五)
  4. onmouseover-onmouseout
  5. 2007浙大复试上机考试题目1--最小长方形
  6. PD的几种文档【转】
  7. Pytm:威胁建模框架
  8. 为什么要使用Iocomp控件?
  9. 【用matlab设计仿真数字锁相放大器】
  10. 陈强教授《机器学习及R应用》课程 第六章作业
  11. outlook html 图片,Outlook邮件内容中的图片无法显示 图片
  12. Android图片拼接
  13. 开关电源设计实例之Boost 篇
  14. 拍摄制作360度全景图有哪些技巧?
  15. js中 push pop shift unshift使用的小问题
  16. Unity 编辑器下运行没有声音
  17. java 设置pdf 编码格式_Java 在PDF中添加条形码
  18. WPS 广告关闭 如何取消WPS的广告? 关闭弹窗-热点-广告推送
  19. pip3在Ubuntu下的安装、升级、卸载
  20. 分布式消息队列RocketMQ(一)安装与启动

热门文章

  1. 八皇后时间复杂度_【精神分裂症】首次发病未治疗精神分裂症患者大脑皮质复杂度改变...
  2. 噩梦射手(SurvivalShooter)教程(一)
  3. 罗胖精选 | 做产品最重要的是格局
  4. Android大厂面试真题解析大全,安卓未来路在何方
  5. Android NavigationBar 显示 Menu 按键
  6. BottomNavigationView简单使用,增加小红点,增加中间操作按钮
  7. steam游戏一直连接服务器,steam无法连接到更新服务器快速有效解决办法
  8. 凡亿教育发布电子工程师利器:IC封装网 V.1.0
  9. android 黑白色主题、滤镜效果(公祭日、追悼日)
  10. 关于VScode中用感叹号不能生成html骨架的解决方法