class maps{
public:
int rows;
int cols;
void size(char **lvl, char corner);
private:
};
void maps::size(char **lvl, char corner){
for(int c=0; *lvl[c]!=corner; c++){
cols=c;
}
for (int r=0; *lvl[r * cols + 1]!=corner; r++){
cols=r;
}
}
int main(int argc, char** argv) {
char w = 189; //wall
char e = 122; //entity
char y = 206; //you
char s = ' '; //space
char c = 188; //corner
control control_you;
maps map_level;
char lvl1[10][20]={{w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, c},
{w, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, w},
{w, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, w},
{w, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, w},
{w, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, w},
{w, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, w},
{w, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, w},
{w, s, e, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, w},
{w, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, y, w},
{c, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w, w}};
map_level.size(*lvl1, c);
return 0;
}
Bloc [错误]没有匹配函数来调用'maps :: size(char [20],char&)
我不知道为什么它找不到我的功能,你能帮帮我吗? 我不知道我是否在课堂上的功能调用中做错了什么,或者我很绝望,请帮助我。谢谢。
答案 0 :(得分:0)
我会使用EXTRA_CHANNEL_ID
,但按照您的方式进行,我会更改std::vector<std::vector<char>>
方法,如下所示:
size()
其中void size(char* lvl, char corner){
rows = 0;
cols = 0;
for (int c=0; lvl[c] != corner; c++){
++cols;
}
++cols; // count the corner
for (int r=0; lvl[r * cols] != corner; r++){
++rows;
}
++rows; // count the corner
}
和cols
与rows
相同,包括角落。 希望在适当的地方有角落。
并称之为:
lvl1