C语言实战 | “俄罗斯方块”游戏重构

之前的游戏中,为了方便大家掌握框架,在"贪吃蛇"游戏中使用了大量的全局变量。全局变量空间利用率不高,全局变量在程序的执行过程中一直占用存储单元,而不是仅在需要时才开辟单元。另外,全局变量降低了通用性,程序执行时还需要依赖全局变量。例如,显示"食物"和"球"的函数,都是将单个变量的数据显示在屏幕上,并且显示"贪吃蛇""球拍"的函数实际上都是遍历一维数组的元素,然后根据存储的位置信息,显示在屏幕上。但是因为函数中使用到全局变量,这些函数无法通用。如果将全局变量改成参数传递,将会提高代码的通用性。

01、综合案例

例如,在"俄罗斯方块""打砖块"和"飞机大战"等游戏中都有按键控制物体上、下、左、右运动,如果函数中使用全局变量,就无法直接使用,只能每个游戏再重新设计一遍。如果使用参数,就能非常好地解决这个问题,提高代码的重用性。代码如下:

去掉全局变量,改用函数的参数传递数据,会发现按键控制物体运动的函数,可以直接在多个游戏中使用,而不需要做任何修改,大大提高了代码的重用率。所以,函数中尽量避免使用全局变量,这样使函数像黑盒子一样,隐藏内部实现细节。

重构的每个步骤都很简单,例如修改变量的命名、删除多余的一句代码或修改一条语句。这些小改变看起来微不足道,但是聚沙成塔,累积起来就能形成质变,从根本上改善程序的质量。

相关推荐
金融小白数据分析之路2 小时前
python解耦重构,提高程序维护性
开发语言·python·重构
与墨学长5 小时前
Rust破界:前端革新与Vite重构的深度透视(上)
开发语言·前端·vue.js·重构·rust·前端框架
群联云防护小杜7 小时前
游戏行业如何运用技术手段应对DDoS攻击:实战指南
数据库·安全·游戏·小程序·web·ddos·被攻击
liutaotie17 小时前
Steam夏促电脑上怎么下载 电脑Steam怎么下载教程
游戏
Avalon71219 小时前
UniVue@v1.0.1版本发布说明
游戏·ui·unity·c#·游戏引擎
Icey_0621 小时前
绝区零卡顿严重、延迟高的解决方法提前看
游戏
TiAmo zhang21 小时前
C语言实战 | 使用链表完成“贪吃蛇”游戏
c语言·开发语言·游戏
liutaotie1 天前
第一后裔进不去游戏怎么办 第一后裔免费加速器推荐
游戏
我和我的顶顶年华1 天前
英灵神殿mac能玩吗 英灵神殿对电脑配置要求《英灵神殿》新手攻略查询 PD虚拟机能玩英灵神殿吗
游戏·macos·pd虚拟机·英灵神殿·苹果电脑玩windows游戏
我和我的顶顶年华1 天前
苹果电脑畅玩《魔兽世界巫妖王之怒》怀旧服国服 PD虚拟机能玩魔兽世界吗 Mac电脑运行Windows游戏
游戏·macos·crossover软件·pd19虚拟机·魔兽世界·教程分享·苹果电脑运行windows