如果你看过一些Direct3D或者OpenGL教程,那么教程中可能会先让你搭一个framework,这样在以后的开发中就可以减少多余代码的书写。
虽然我不太喜欢这种方式,但是不可否认,它确实很方便,而且能让代码的结构清晰且易于理解,因此我决定先做同样的事。
首先,是Grid,它用来表示格子:
Grid类非常简单,为了方便操作,它只是用来存储数据,而且所有成员均为public,用术语来说,它是一个聚合类:
接下来就是framework了,以后的代码都会继承这个类以实现更高级的操作:
它的构造函数初始化operating_area和handle,前者顾名思义,一切生成操作都在这个区域里进行,后者是Windows的句柄,用于实现光标移动和颜色修改,你如果感兴趣的话可以看看MSDN:Console documentation。
这就是基本框架了,代码已上传至github,你可以clone下来尝试运行,不过注意,它只能在Windows平台上运行,也许以后我会实现跨平台,但那是以后的事。
(本来想用一维数组,然后写个把二维坐标映射到一维的函数,不过后来想想,我毕竟也不是什么性能狂魔,二维数组就二维数组吧,i5-8400对付这个可是绰绰有余!)
原文:https://www.cnblogs.com/lostmatch/p/10423477.html