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

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

01、综合案例

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

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

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

相关推荐
文火冰糖的硅基工坊6 小时前
《投资-111》价值投资者的认知升级与交易规则重构 - 价值投资的思维模式:穿越表象,回归本质
重构·架构·投资·投机
土丁爱吃大米饭6 小时前
千年游戏智慧:文化的密码
游戏·游戏设计·古代游戏·游戏中的文化·游戏文化
文火冰糖的硅基工坊19 小时前
《投资-114》价值投资者的认知升级与交易规则重构 - 从大规模分工的角度看,如何理解“做正确的事”,即满足下游正确的需求
重构·投资·投机
2501_9181269119 小时前
使用HTML和Python开发街霸游戏
python·游戏·html
AA陈超1 天前
虚幻引擎UE5专用服务器游戏开发-33 在上半身播放组合蒙太奇
c++·游戏·ue5·游戏引擎·虚幻
AA陈超1 天前
虚幻引擎5 GAS开发俯视角RPG游戏 P05-05 游戏效果委托
c++·游戏·ue5·游戏引擎·虚幻
m0_552200821 天前
《UE5_C++多人TPS完整教程》学习笔记62 ——《P63 多人游戏中的开火特效(Fire Effects in Multiplayer)》
c++·游戏·ue5
文火冰糖的硅基工坊1 天前
《投资-107》价值投资者的认知升级与交易规则重构 - 上市公司的估值,估的不是当前的净资产的价值,而是未来持续赚钱的能力,估的是公司未来所有赚到钱的价值。
重构·架构·投资·投机
文火冰糖的硅基工坊1 天前
《投资-99》价值投资者的认知升级与交易规则重构 - 什么是周期性股票?有哪些周期性股票?不同周期性股票的周期多少?周期性股票的买入和卖出的特点?
大数据·人工智能·重构·架构·投资·投机
软希网分享源码2 天前
游戏攻略新闻资讯主题模板源码 YK一点资讯模版 Zblog主题模版(源码下载)
游戏·游戏攻略新闻资讯主题模板源码