第一篇学习博客——俄罗斯方块的C语言源代码

——该博客的目的是记录学习成果——

前言

为了熟悉C语言的基本运用,选择从实际应用入手学习C语言常用语法及函数调用,选择了俄罗斯方块这个小游戏。从网上找到源代码,所用变成语言准确说是C++,不过差距不大没有影响。

一 准备工作

最近换了MacBook,但是没有使用过MacOS系统,连软件编译器都要重新安装,最后选择了Xcode,毕竟习惯了图形界面的IDE环境,学习Xcode的基本使用倒是简单。

二 代码阅读

C++使用的是面向对象编程,我编程的经验不多,查阅网上别人对面向对象和面向过程的理解结合我之前阅读代码的经验,我的理解是面向过程尽可能地使用函数封装减少代码重复,其中一个特点就是会用到很多点号.,将主要关注的东西抽象成对象,然后使用对象中的属性或者动作。

学过C语言的话理解其中的语法不是问题,在我看来,为了完成游戏的功能,使用的技巧如下:
一、将功能分为几块:画出图形界面以及可以移动的方块,方块翻转的功能,判断方块能否移动的函数,判断游戏终止的函数;
二、作图时对于不变的图形用一个矩阵记录有方块的位置,当出现方块固定或消除的时候更新矩阵;
三、将19个方块的形状用外部文件表示,可以使代码美观。

阅读这个项目代码给我的感觉是其中的逻辑关系需要比较细心,其中似乎缺少方块自动下落的功能,似乎存在一些没有用到的变量。如果让我重新写一遍这个游戏的话,其中的各种变量类型,画图函数,表示方块位置的计算,全局变量与局部变量的定义,方块翻转等等都会耗时很久。

在编译程序的过程中,我发现需要自己添加graphics.h和conio.h两个函数库,查阅后答案是,这两个库都是很旧的,基于Windows系统使用,MacOS有其它图形库,如果非要用graphics.h的话可以用已经编译好的framework,但是这就使另一个问题了。
尝试截图

还有什么能做的

1、framework可以自己生成,所以可以了解如何将这两个头文件编译成framework,再运行
2、C语言应该与系统无关,不过MacOS的库函数是.so和.o,和.h不一样,所以需要确认手动添加头文件的方法,另外Visual Studio是否可以自动搜索以及添加这两个不常用的库呢

总结

我的目的是做图像算法,C语言或者其他语言只是一个工具,我应该从具体应用出发再选择使用的编程语言。从这个小游戏的源代码阅读中,我用到了Xcode,复习了C语言语法,稍稍理解了面向对象编程,知道OpenGL库就是常用绘图函数的集合,这个做法看起来是有效的,收获比我想的要少一点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值