十年前的C++練手程序:五子棋和俄羅斯方塊

最近整理了下硬盤上的資料,發現多年前自己寫的兩款C++練手小程序:五子棋和俄羅斯方塊,運行了一下發現程序還能正常跑起來,哈哈哈。這裏把這兩個東西分享出來,一是追憶下自己已經逝去的程序青春,二是留個紀念吧。

這兩個小程序都採用visual studio工具和MFC框架。那個時候微軟的MFC框架還是比較流行,現在估計知道這個框架的程序員朋友比較少。這兩個小程序,沒有使用任何第三方庫和圖片資源,界面完全是調用MFC相關API進行簡單繪製。電腦走棋部分也沒有使用目前流行的人工智能或者機器學習算法,簡單寫了一個打分算法,找到當前分數最高的點作爲下一步的落棋位置。

雖說是一個比較單純的桌面小程序,但是用到了程序設計中的很多常用設計方法,比如悔棋用到了棧這個數據結構;面向對象的基本思想封裝,包括棋子、棋盤、玩家等基礎元素的封裝;還有多線程,資源同步;支持雙人網絡對戰模式,因此還用到了socket通信。

步數怎麼保存,悔棋具體又怎麼實現等等,這些都用到了面向對象裏邊的基本原理,以及C++標準庫裏邊的一些常用類和方法。很多朋友可能認爲C++比較難,其實也還好,只是入門的門檻有一個垂直的爬升過程,翻過這個門檻之後,會發現程序的世界豁然開朗。

一旦掌握了C++的基本思想之後,學習其他高級語言也類似,比如python語言,它的面向對象思想基本上和C++一樣,用class關鍵字定義類,用括號的形式實現類繼承。

另外,當掌握C++之後相當於也學會了C語言。目前比較流行的java語言,其虛擬機就是採用C語言+彙編語言開發的,又比如目前在人工智能領域很火的python,其解釋器也是採用C語言開發。

回想起來,自己的碼齡也十來年了,真的是時光如梭。其實在我看來,程序員最重要的是要掌握一些思想,面向對象也好,面向服務也罷,又或者是微服務,主要的還是得理解這些東西的核心思想,思想纔是精髓。

其他的諸如一些框架性的東西,如果僅僅從使用的角度來講,其實都很簡單,看看源碼,翻翻官方的幫助手冊也就會用了,比如QT。當然如果要自己實現一個框架,寫一個性能優越的服務,那得有真功夫纔行。

所以在我看來要學會使用的一門語言或者一箇中間件其實很簡單,關鍵的是要學會從某些比較牛逼的思想中,提煉到一套屬於自己的思維方法。

當然,那些天生就是創造型的人除外,因爲他們可以憑空創造出很多讓人意外的東西。

對於對C++比較感興趣的那些朋友,個人覺得利用業餘時間寫一些練手的小程序,是一個比較不錯的提升技能的途徑,像俄羅斯方塊這類邏輯比較簡單的程序,個人覺得是不錯的入門選擇。

比如這個俄羅斯方塊程序,要做得很複雜,很高級也是可以的。比如可以把界面做得很炫,可以支持手機、平板電腦等,甚至還做成3D的、多人對戰等等,但這需要掌握更多的技能和框架,需要掌握更多的設計思想。

有了興趣還怕學不會?

當對一個東西着了迷的時候,人是可以無限的發揮自己的想象力的,尤其是那些會刺激腎上腺素的事情。

人一旦對某件事情有了興趣,他們可以無下限的向下“挖掘”他們認爲正確的東西。

有點跑題了,就這樣吧。

最後附上源碼: 五子棋 俄羅斯方塊

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