我正在为地下城游戏编写代码。地牢是一个平方的角色阵列。在实际版本中,数组的大小和敌人的数量等用" #define"声明,但我想稍微改进程序并且让用户设置高度,宽度,敌人数量...... 问题是我不知道如何以用户输入大小的方式声明数组,同时,数组全局并且可以被所有人访问我用(#define)编写的函数。 我对任何不涉及重写所有功能的建议持开放态度。)
**目前,数组的声明是:
#define WIDTH 20
#define HEIGHT 20
char dun[HEIGHT][WIDTH];
**链接到代码:https://github.com/Zashuiba/The-Dungeon-Game/blob/master/Dungeon/Dungeon.cpp
答案 0 :(得分:0)
#include <vector>
您可能希望使用std::vector
类。这是一个快速草案代码:
size_t width = 20;
size_t height = 20;
std::vector< std::vector<char> > dun;
void init_array()
{
dun.resize(height);
for (size_t i = 0; i < height; ++i)
dun[i].resize(width);
}
答案 1 :(得分:0)
使dun成为矢量载体
#include<vector>
std::vector<std::vector<char>> dun; //global variable
//In your input function
input_from_user()
{
int Height = getHeight();
int width = getWidth();
dun.clear();
for(int i = 0 ; i < Height ; ++i)
{
std::vector<char> createdVector(Width);
dun.push_back(createdVector);
}
}
现在你可以使用dun,因为你使用2维元素char数组,因为下标运算符被重载为std :: vector