十年前的C++练手程序:五子棋和俄罗斯方块

最近整理了下硬盘上的资料,发现多年前自己写的两款C++练手小程序:五子棋和俄罗斯方块,运行了一下发现程序还能正常跑起来,哈哈哈。这里把这两个东西分享出来,一是追忆下自己已经逝去的程序青春,二是留个纪念吧。

这两个小程序都采用visual studio工具和MFC框架。那个时候微软的MFC框架还是比较流行,现在估计知道这个框架的程序员朋友比较少。这两个小程序,没有使用任何第三方库和图片资源,界面完全是调用MFC相关API进行简单绘制。电脑走棋部分也没有使用目前流行的人工智能或者机器学习算法,简单写了一个打分算法,找到当前分数最高的点作为下一步的落棋位置。

虽说是一个比较单纯的桌面小程序,但是用到了程序设计中的很多常用设计方法,比如悔棋用到了栈这个数据结构;面向对象的基本思想封装,包括棋子、棋盘、玩家等基础元素的封装;还有多线程,资源同步;支持双人网络对战模式,因此还用到了socket通信。

步数怎么保存,悔棋具体又怎么实现等等,这些都用到了面向对象里边的基本原理,以及C++标准库里边的一些常用类和方法。很多朋友可能认为C++比较难,其实也还好,只是入门的门槛有一个垂直的爬升过程,翻过这个门槛之后,会发现程序的世界豁然开朗。

一旦掌握了C++的基本思想之后,学习其他高级语言也类似,比如python语言,它的面向对象思想基本上和C++一样,用class关键字定义类,用括号的形式实现类继承。

另外,当掌握C++之后相当于也学会了C语言。目前比较流行的java语言,其虚拟机就是采用C语言+汇编语言开发的,又比如目前在人工智能领域很火的python,其解释器也是采用C语言开发。

回想起来,自己的码龄也十来年了,真的是时光如梭。其实在我看来,程序员最重要的是要掌握一些思想,面向对象也好,面向服务也罢,又或者是微服务,主要的还是得理解这些东西的核心思想,思想才是精髓。

其他的诸如一些框架性的东西,如果仅仅从使用的角度来讲,其实都很简单,看看源码,翻翻官方的帮助手册也就会用了,比如QT。当然如果要自己实现一个框架,写一个性能优越的服务,那得有真功夫才行。

所以在我看来要学会使用的一门语言或者一个中间件其实很简单,关键的是要学会从某些比较牛逼的思想中,提炼到一套属于自己的思维方法。

当然,那些天生就是创造型的人除外,因为他们可以凭空创造出很多让人意外的东西。

对于对C++比较感兴趣的那些朋友,个人觉得利用业余时间写一些练手的小程序,是一个比较不错的提升技能的途径,像俄罗斯方块这类逻辑比较简单的程序,个人觉得是不错的入门选择。

比如这个俄罗斯方块程序,要做得很复杂,很高级也是可以的。比如可以把界面做得很炫,可以支持手机、平板电脑等,甚至还做成3D的、多人对战等等,但这需要掌握更多的技能和框架,需要掌握更多的设计思想。

有了兴趣还怕学不会?

当对一个东西着了迷的时候,人是可以无限的发挥自己的想象力的,尤其是那些会刺激肾上腺素的事情。

人一旦对某件事情有了兴趣,他们可以无下限的向下“挖掘”他们认为正确的东西。

有点跑题了,就这样吧。

最后附上源码: 五子棋 俄罗斯方块

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章