C语言入门进阶——描述程序对象



在了解了基础数据类型的细节知识之后,我们可以尝试运用所学正确的描述程序中的对象,这里我们以描述俄罗斯方块做为起点。

俄罗斯方块

一说到俄罗斯方块,我想你脑海中肯定已经冒出了形形色色的形状,甚至低估着:“嗯,我讨厌那个上下层形状的块块,它经常让我无所适从。”

停止想像,回到正题。假如说我们要开发这么一款休闲游戏,其中的问题之一便是这些方块该如何表示?

快速的在脑海中扫描一遍你所知的形状,你会发现最宽的是横条,它有4个小方块的宽度;最高的是竖条,它有4个小方块的高度。L形状也是由4个小方块构成,但是占据了2列...

你可能还没有思路,但是如果我们选择最宽与最高的形状形成一个网格,你会发现,所有这些形状是不是都可以放在这个网格中。对于当前的方块而言,我所在的小方格是可见的,其它的方格是隐藏的。如果我们用1与0来表示这两种状态,可以得到下面这样的参考图,一目了然。


描述方块

现在应该选择合理的数据去描述这些方块了。

我们曾经使用过数组描述了推箱子游戏中的地表部分,对于这样16个小格子,也可以使用同样的手法。

我们用1个int型表示一个小方格,1个int型占用4字节,那一个shape将耗用64字节。很显然,将int型换为char型可以减少内存占用。同时,由于存储的数据是0与1,使用char类型也是安全的。

输出方块

关于怎么快速学C/C++,可以加下小编的C/C++学习群:341+636+727,不管你是小白还是大牛,小编我都欢迎,不定期分享干货,欢迎初学和进阶中的小伙伴。

每天晚上20:00都会开直播给大家分享C/C++游戏编程学习知识和路线方法,群里会不定期更新最新的教程和学习方法,最后祝所有程序员都能够走上人生巅峰,让代码将梦想照进现实


将方块打印出来比较容易,与以往不同的是,这次我们使用putchar函数来输出单个字符。

程序在每输出4个数据之后换行继续输出,不过,结果没有想像的那么漂亮。

你可能对putchar函数不够熟悉,在VS中你可以查看该函数的原型,会发现它接收一个int型参数。还记得上一系列课程中讲解过的,这些单个字符与ASCII码值的关系吗?试着用整数值改写一下程序,输出shape2的形状来。


在了解了基础数据类型的细节知识之后,我们可以尝试运用所学正确的描述程序中的对象,这里我们以描述俄罗斯方块做为起点。

俄罗斯方块

一说到俄罗斯方块,我想你脑海中肯定已经冒出了形形色色的形状,甚至低估着:“嗯,我讨厌那个上下层形状的块块,它经常让我无所适从。”

停止想像,回到正题。假如说我们要开发这么一款休闲游戏,其中的问题之一便是这些方块该如何表示?

快速的在脑海中扫描一遍你所知的形状,你会发现最宽的是横条,它有4个小方块的宽度;最高的是竖条,它有4个小方块的高度。L形状也是由4个小方块构成,但是占据了2列...

你可能还没有思路,但是如果我们选择最宽与最高的形状形成一个网格,你会发现,所有这些形状是不是都可以放在这个网格中。对于当前的方块而言,我所在的小方格是可见的,其它的方格是隐藏的。如果我们用1与0来表示这两种状态,可以得到下面这样的参考图,一目了然。


描述方块

现在应该选择合理的数据去描述这些方块了。

我们曾经使用过数组描述了推箱子游戏中的地表部分,对于这样16个小格子,也可以使用同样的手法。

我们用1个int型表示一个小方格,1个int型占用4字节,那一个shape将耗用64字节。很显然,将int型换为char型可以减少内存占用。同时,由于存储的数据是0与1,使用char类型也是安全的。

输出方块

关于怎么快速学C/C++,可以加下小编的C/C++学习群:341+636+727,不管你是小白还是大牛,小编我都欢迎,不定期分享干货,欢迎初学和进阶中的小伙伴。

每天晚上20:00都会开直播给大家分享C/C++游戏编程学习知识和路线方法,群里会不定期更新最新的教程和学习方法,最后祝所有程序员都能够走上人生巅峰,让代码将梦想照进现实


将方块打印出来比较容易,与以往不同的是,这次我们使用putchar函数来输出单个字符。

程序在每输出4个数据之后换行继续输出,不过,结果没有想像的那么漂亮。

你可能对putchar函数不够熟悉,在VS中你可以查看该函数的原型,会发现它接收一个int型参数。还记得上一系列课程中讲解过的,这些单个字符与ASCII码值的关系吗?试着用整数值改写一下程序,输出shape2的形状来。

猜你喜欢

转载自blog.csdn.net/chengxuyuan997/article/details/80768539
今日推荐