我正在尝试调用一个在我的地图上显示俄罗斯方块形状的函数。下面的函数包含所有不同的俄罗斯方块形状,它需要一个参数ShapeType
,以便它知道要删除哪个形状。此参数将是随机的,但我们将使用1
作为示例。
void TetrisShapes(char ShapeType){
if (ShapeType == 1){
Map[0][0] = ' '; Map[1][0] = 'X'; Map[2][0] = ' '; Map[3][0] = ' ';
Map[0][1] = ' '; Map[1][1] = 'X'; Map[2][1] = ' '; Map[3][1] = ' ';
Map[0][2] = ' '; Map[1][2] = 'X'; Map[2][2] = 'X'; Map[3][2] = ' ';
Map[0][3] = ' '; Map[1][3] = ' '; Map[2][3] = ' '; Map[3][3] = ' ';
}
if(ShapeType == 2){
Map[0][0] = ' '; Map[1][0] = ' '; Map[2][0] = ' '; Map[3][0] = ' ';
Map[0][1] = ' '; Map[1][1] = 'X'; Map[2][1] = 'X'; Map[3][1] = ' ';
Map[0][2] = 'X'; Map[1][2] = 'X'; Map[2][2] = ' '; Map[3][2] = ' ';
Map[0][3] = ' '; Map[1][3] = ' '; Map[2][3] = ' '; Map[3][3] = ' ';
}
}
选择一个形状后,我们会采用形状并调用它,然后将其放置在具有特定坐标ShapePosX
和ShapePosY
的地图上,如下所示
Map[ShapePosX][ShapePosY] = TetrisShapes(1);
现在我的问题是我无法调用上面的行,因为函数是无效的并且不会返回任何内容..但是它应该返回显示ShapePosX
和{{1}坐标中的tetris片段的数组}}。
如果在此特定问题中调用该函数,我该怎么办?感谢
答案 0 :(得分:2)
由于您使用C ++编程,因此可以将数组作为参数传递给函数。
所以基本上你的函数的原型变成了:
void TetrisShapes(char ShapeType, char Map[][3])
然后,假设您已经声明了数组Map,您可以将您的函数称为:
TetrisShapes(1, Map);