编写地图后台程序
上周研究了一下MFC,也忘记写博客了,但是也没弄多少。这周被分配到写底层实现函数了。
先写地图矩阵自动生成代码,初始化地图上相应的资源,城堡信息。地初始化的话就用伪随机数,不过是在自己控制下将一块大地图分块随机,分几次随机,使得地形与资源分布更合理。
遇到一些问题:
1.错误 1 error C2143: 语法错误 : 缺少“;”(在“using”的前面)
一般这种错误都是由于你写的头文件缺少";"导致的。
2.可以根据不同权重生成资源:如rand()%5,取0,1为一种,2、3、4为一种,则权重就不同了。
3.生成地图矩阵时候可以开启openMP并行
可以参考博客:http://www.tuicool.com/articles/RbIr2mJ
4.错误 2 error LNK1120: 1 个无法解析的外部命令
这个问题的原因是有头文件,但是找不到实现。
有两个原因:1.只包含了头文件,只有这个函数的声明,没有包含这个函数的实现(实现一般放在cpp文件中的)。所以只能通过编译,连接不成功。
2.另一个原因是函数的声明和实现都放在头文件中了,一般要把声明放头文件中,实现放在cpp文件中。这样每个#include该头文件的文件都会有一份该函数的实现,连接的时候,连接器不知道连接哪一个实现,于是报错。
最后发现是头文件声明了extern变量,在app里面没有定义!!
对extern说明:定义常规外部变量时候,不必使用extern关键字 ;而extern const int state=50;//define with extern linkage时候,必须在所有使用该常量文件中使用extern关键字声明它。
5.对于矩阵输出可能窗口不够大,在最前面加上:system("mode con cols=120 lines=100");//改变宽高