最近整理了下硬盘上的资料,发现多年前自己写的两款C++游戏程序:五子棋和俄罗斯方块,运行了一下发现程序还能正常跑起来。这里借助CSDN博客把这两个东西分享出来,追忆一下自己的编码时光,也留个纪念。
这两个游戏程序都采用MFC框架,MFC是微软VS的桌面程序框架,游戏界面的绘制调用了MFC和WIN32系统API,电脑走棋是一个比较粗糙的打分算法,找到当前分数最高的点作为下一步的落棋点。
这两个桌面小游戏用到了程序设计中的一些常用技术,如悔棋的栈数据结构,以及面向对象的一些思想,棋子、棋盘、玩家等元素的封装,还有多线程,资源同步等,支持人机对战、双人网络对战,步数的保存、悔棋等功能的实现用到了C++标准库里边的一些常用类和方法。
C++是基于C的面向对象高级编程语言,学习这门语言我们需要掌握其语法,在做项目的时候遇到编码难点可以看看官方帮助文档,官方的帮助文档和好的开源代码是一个帮助我们提升内功的比较好的途径。技术的提升需要时间的累积,也需要放空掉已经过时或者熟悉的东西,就像俄罗斯方块游戏一样。掌握了面向对象编程的基本思想之后,学习其他高级语言也比较容易了,如Python的面向对象思想基本上和C++一样,用class关键字定义类,用括号的形式实现类继承。
其他的如一些框架或者库如果仅仅从使用的角度来讲,看看源码翻翻官方的帮助手册估计也就会用了。如果我们要从零开始实现一个框架写一个性能优越的服务,开源出去让别人认同并使用,只要肯花时间肯定是可以的,一个人也可以完成一些困难的事情。
回想起来自己的码龄也十来年了,真是时间如疾风岁月如流水。个人觉得比较重要的是要掌握一些程序设计思想,面向对象也好大模型也罢,神经网络也好0DAY漏洞也罢,他们都是计算机世界中的一个名字,与写代码比起来掌握这些名字背后的原理才是最重要的,还有就是他们产生的背景等。十年时间真的不短,但是也短,技术的生命也有长短,人的一生时间有限,但技术发展的时间无限。
所以学习一门编程语言或者使用一个框架,其实这个过程是一个比较吃力的过程,我们要学会并能使用需要尝试和坚持,就像我们小时候学习走路一样,没有接触过的东西初次尝试的时候总是会比较期待也会有问题的发生。在学习程序开发的过程中我们可以做一些有意思的小软件来提升自己的内力,比如写一些游戏小程序,给女朋友写一个“病毒”程序等等。
下面是五子棋和俄罗斯方块源码地址,欢迎感兴趣的朋友一起交流。五子棋https://github.com/walnut00/Gobang 俄罗斯方块https://github.com/walnut00/Tetris