若是你看過一些Direct3D或者OpenGL教程,那麼教程中可能會先讓你搭一個framework,這樣在之後的開發中就能夠減小多餘代碼的書寫。git
雖然我不太喜歡這種方式,可是不能否認,它確實很方便,並且能讓代碼的結構清晰且易於理解,所以我決定先作一樣的事。github
首先,是Grid類,它用來表示格子。windows
Grid類很是簡單,爲了方便操做,它只是用來存儲數據,並且全部成員均爲public,用術語來講,它是一個聚合類:數組
接下來就是framework了,之後的代碼都會繼承這個類以實現更高級的操做:框架
它的構造函數初始化operating_area和handle,前者顧名思義,一切生成操做都在這個區域裏進行,後者是Windows的句柄,用於實現光標移動和顏色修改,你若是感興趣的話能夠看看MSDN:Console documentation。函數
這就是基本框架了,代碼已上傳至github,你能夠clone下來嘗試運行,不過注意,它只能在Windows平臺上運行,也許之後我會實現跨平臺,但那是之後的事。性能
運行效果:blog
(原本想用一維數組,而後寫個把二維座標映射到一維的函數,不事後來想一想,我畢竟也不是什麼性能狂魔,二維數組就二維數組吧,i5-8400對付這個但是綽綽有餘!)繼承